0% encontró este documento útil (0 votos)
41 vistas

Respaldar Bases de Datos de SQL Server Con Visual Basic NET

Este documento describe cómo crear una aplicación en Visual Basic .NET para realizar respaldos de bases de datos SQL Server de forma sencilla para usuarios finales. Se explican los pasos para obtener la lista de servidores SQL, las bases de datos y ejecutar el comando BACKUP de Transact-SQL para generar el respaldo con el nombre, fecha y hora.

Cargado por

Luchy Vdj
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas

Respaldar Bases de Datos de SQL Server Con Visual Basic NET

Este documento describe cómo crear una aplicación en Visual Basic .NET para realizar respaldos de bases de datos SQL Server de forma sencilla para usuarios finales. Se explican los pasos para obtener la lista de servidores SQL, las bases de datos y ejecutar el comando BACKUP de Transact-SQL para generar el respaldo con el nombre, fecha y hora.

Cargado por

Luchy Vdj
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Respaldar bases de datos de SQL Server con Visual Basic .NET Por Juan Carlos Rojas Vargas !

ubical "R#$ Costa Rica%

)ntroducci*n Generalmente cuando se desarrolla una aplicacin para un cliente, una de las preguntas importantes que se nos hacen es: Y los respaldos de la base de datos? Con SQL Server tenemos la posibilidad de crear planes de mantenimiento a los que podemos indicarles ciertas opciones, como por e emplo, la noti!icacin por correo electrnico" #e esta !orma de amos de lado el traba o de incluir en nuestro pro$ecto un mdulo u otra aplicacin e%terna para llevar a cabo los respaldos de in!ormacin" &ersonalmente, la desventa a de crear un plan de mantenimiento es que 'ste se e ecutar( con base a los par(metros que le ha$amos establecido $ no cuando el cliente desee crear un respaldo de su base de datos" )ambi'n, para modi!icar $*o e ecutar un plan de mantenimiento +en el momento que se decida,, es necesario que el cliente +o el usuario !inal de la aplicacin, tenga un poco de conocimientos de SQL Server, lo cual, si el mismo no cuenta con los conocimientos, signi!icar-a reali.ar una capacitacin en esa (rea $ como consecuencia perder-amos tiempo $ nuestro cliente deber( desembolsar m(s dinero" /ste peque0o documento se ha creado para indicar a los desarrolladores como llevar a cabo un respaldo de una base de datos utili.ando )ransact1SQL $ 2isual 3asic "4/)" Cabe mencionar que, actualmente con la tecnolog-a "4/) es posible crear planes de mantenimiento desde nuestra aplicacin, pero este no es nuestro caso, $a que lo haremos directamente con )ransact1SQL" Pasos para crear un respaldo desde nuestra aplicaci*n /sta es una breve lista de los pasos que debemos llevar a cabo para desarrollar una aplicacin sencilla que nos permita generar respaldos de !orma !(cil +pensado para usuarios !inales sin muchos conocimientos,: 5" 7" 8" 9" 6btener la lista de servidores SQL de la red Suministrar los datos de cone%in +enti'ndase como usuario $ contrase0a, 6btener el nombre de las bases de datos almacenadas en el servidor :ndicar la ubicacin $ el nombre del respaldo +generalmente el nombre de un respaldo es: el nombre de la base de datos con la !echa $ la hora en que se reali.a +tambi'n inclu$e la e%tensin "ba;,, por e emplo: ;ubicalorg1 7<<=<87<1589><?"ba;, @" Crear el respaldo de la base de datos seleccionada ?" :n!ormar al usuario de lo sucedido

P&gina ' de (

Respaldar bases de datos de SQL Server con Visual Basic .NET Por Juan Carlos Rojas Vargas !ubical "R#$ Costa Rica%

Creaci*n de la inter,a- de la aplicaci*n /n la siguiente imagen puede observarse la apariencia de la aplicacin:

Cada uno le da la apariencia que desee, o que crea m(s conveniente para que el usuario se sienta m(s cmodo" Lo importante es que, para desarrollar el e emplo, la inter!a. cuente con todos los controles que se muestran en la imagen anterior" A continuacin se presenta una lista con los tipos, nombres $ propiedades de los controles m(s importantes que vamos a utili.ar: L)ST. /E C"NTR"LES . 0T)L)1.R T)P" Combo3o% )e%t3o% N"2BRE cboServidor cbo3# t%tCsuario t%tContrasena t%t#estino btnConectar btnDespaldar btnCerrar PR"P)E/./ #rop#oBnSt$le #rop#oBnSt$le V.L"R #rop#oBnList #rop#oBnList

3utton

Dead6nl$ 3ac;Color )e%t )e%t )e%t

)rae EindoB CFonectar FDespaldar FCerrar

P&gina + de (

Respaldar bases de datos de SQL Server con Visual Basic .NET Por Juan Carlos Rojas Vargas !ubical "R#$ Costa Rica%

Progra4ando la utilidad de respaldos Ya que tenemos lista la inter!a. procederemos a agregar el cdigo para darle vida a nuestro programa" &ero antes, debemos agregar las siguientes re!erencias: 5" Gicroso!t"SQLServer"Connection:n!o 7" Gicroso!t"SQLServer"Smo 8" Gicroso!t"SQLServer"Smo/num &ara agregar las re!erencias podemos hace clic en la opcin Agregar re!erencia, ubicada en el menH &ro$ecto" /n el !ormulario que se nos presenta buscamos el nombre de las mencionadas anteriormente $ listo" )ambi'n, vamos a agregar al inicio de nuestra clase +o !ormulario, las siguientes l-neas:
Imports Microsoft.SqlServer.Management.Smo Imports system.Data.SqlClient

Con todo esto listo, comen.aremos a escribir el cdigo necesario para que la aplicacin comience a !uncionar" Lo primero que programaremos ser( un procedimiento con el cual vamos a obtener el nombre de los servidores SQL"
Private Sub psServidores() Me.cboServidor.Items.Clear() For ac! svrServidor "s #egisteredServers.#egisteredServer In $ Smo"pplication.SqlServer#egistrations. num#egisteredServers Me.cboServidor.Items."dd(svrServidor.%ame) %e&t If Me.cboServidor.Items.Count ' ( )!en $ Me.cboServidor.SelectedInde& * ( nd Sub

&ara cargar nuestro Combo3o% con la lista de servidores, llamamos al procedimiento psServidores en el evento Load del !ormulario:
Private Sub frmPrincipal$+oad(,y-al sender "s System..b/ect0 $ ,y-al e "s System. vent"rgs) 1andles My,ase.+oad Call Me.psServidores() nd Sub

Ahora vamos a programar el evento Clic; del botn btnConectar" &or medio del siguiente cdigo veri!icamos que se ha$a seleccionado un servidor SQL $ proporcionado el nombre de usuario +la contrase0a no se veri!ica, $a que en muchos casos ha$ personas que la de an en blancoI un gran riesgo de seguridad,"

P&gina 3 de (

Respaldar bases de datos de SQL Server con Visual Basic .NET Por Juan Carlos Rojas Vargas !ubical "R#$ Costa Rica%

Con el siguiente cdigo obtenemos el nombre de las bases de datos almacenadas en el servidor seleccionado por el usuario:
Private Sub btnConectar$Clic2(,y-al sender "s System..b/ect0 $ ,y-al e "s System. vent"rgs) 1andles btnConectar.Clic2 If Me.cboServidor.)e&t 3' 44 "nd Me.t&t5suario.)e&t.)rim 3' 44 )!en Dim svrServidor "s %e6 Server(Me.cboServidor.)e&t) Me.cbo,D.Items.Clear() )ry 7it! svrServidor .ConnectionConte&t.+oginSecure * False .ConnectionConte&t.+ogin * Me.t&t5suario.)e&t.)rim .ConnectionConte&t.Pass6ord * Me.t&tContrasena.)e&t.)rim For ac! bd,ase "s Database In svrServidor.Databases Me.cbo,D.Items."dd(bd,ase.%ame) %e&t nd 7it! If Me.cbo,D.Items.Count ' ( )!en Me.cbo,D.SelectedInde& * ( Catc! e& "s &ception Me.cbo,D.Items.Clear() Msg,o&(e&.Message0 Msg,o&Style.Critical) nd )ry lse If Me.cboServidor.)e&t.)rim * 44 )!en If Msg,o&(4%o se encontraron servidores S8+ 9Desea 4 $ : 4actuali;ar la lista<40 Msg,o&Style. &clamation = $ Msg,o&Style.>es%o) * Msg,o&#esult.>es )!en Call Me.psServidores() nd If lse Msg,o&(4Por favor0 digite el nombre de usuario.40 $ Msg,o&Style.Critical) Me.t&t5suario.Clear() ? Me.t&t5suario.Focus() nd If nd If nd Sub

&er!ecto, $a nuestra aplicacin obtiene el nombre de los servidores SQL encontrados $ adem(s, nos muestra el nombre de las bases de datos almacenadas en cualquiera de ellos" 2amos a agregar el cdigo para el evento Clic; del botn btn/%aminar, aspermitiremos al usuario elegir el directorio donde se almacenar( el respaldo:
Private Sub btn &aminar$Clic2(,y-al sender "s System..b/ect0 $ ,y-al e "s System. vent"rgs) 1andles btn &aminar.Clic2 Dim dlgDestino "s %e6 Folder,ro6serDialog 7it! dlgDestino .Description * 4Seleccione el directorio de destino?4 If .S!o6Dialog * 7indo6s.Forms.Dialog#esult..@ )!en P&gina 5 de (

Dim strDestino "s String * .SelectedPat!.)oString If %ot strDestino. nds7it!(4A4) )!en strDestino * strDestino : 4A4 nd If Me.t&tDestino.)e&t * strDestino nd If nd 7it! nd Sub

Casi lista la aplicacinI lo Hnico que nos !alta es crear el respaldo de la base de datos seleccionada por el usuario" &ara ello vamos a crear una cone%in al servidor SQL $ e ecutar el comando de )ransact1SQL que nos permitir( crearlo" Adem(s, reali.aremos una veri!icacin para determinar si el usuario ha seleccionado una base de datos $ especi!icado el directorio de destino del respaldo" /l nombre del respaldo ser( asignado autom(ticamente, el !ormato ser( el siguiente: nombreoriginal1!echa1hora"ba;"
Private Sub btn#espaldar$Clic2(,y-al sender "s System..b/ect0 $ ,y-al e "s System. vent"rgs) 1andles btn#espaldar.Clic2 If Me.cbo,D.)e&t 3' 44 "nd Me.t&tDestino.)e&t.)rim 3' 44 )!en Dim conCone&ion "s %e6 SqlConnection(4data source*4 $ : Me.cboServidor.)e&t : 4Buser id*4 : Me.t&t5suario.)e&t.)rim $ : 4Bpass6ord*4 : Me.t&tContrasena.)e&t.)rim : 4Binitial 4 $ : 4catalog*4 : Me.cbo,D.)e&t : 4B4) )ry Dim str%ombre$#espaldo "s String * Me.cbo,D.)e&t $ : 4C4 : Date.%o6.)oString(4yyyyMMdd4) : 4C4 $ : Date.%o6.)oString(411mmss4) : 4.ba24 conCone&ion..pen() Dim coS8+ "s %e6 SqlCommand(4,"C@5P D")","S D4 $ : Me.cbo,D.)e&t : 4E ). DIS@*F4 : Me.t&tDestino.)e&t $ : str%ombre$#espaldo : 4F40 conCone&ion) coS8+. &ecute%on8uery() Msg,o&(4#espaldo creado correctamente ?)40 $ Msg,o&Style.Information) Catc! e& "s &ception Msg,o&(e&.Message0 Msg,o&Style.Critical) Finally conCone&ion.Close() nd )ry lse If Me.cbo,D.)e&t * 44 )!en If Me.cboServidor.)e&t 3' 44 )!en Msg,o&(4Por favor0 conGctese al servidor.40 $ Msg,o&Style.Critical) Me.btnConectar.Focus() nd If lse

Msg,o&(4 specifique el destino del respaldo.40 $ Msg,o&Style.Critical) Me.btn &aminar.Focus() nd If nd If nd Sub

Notas ,inales del autor /ste es el !inal del art-culo, el cdigo no est( comentado ni tampoco se da mucha in!ormacin acerca de para que sirve cada cosaI pero en !in, espero que ha$a sido de su a$uda" /l cdigo ha sido desarrollado de la !orma m(s simple para que todos los entiendan" &ara obtener m(s in!ormacin acerca del comando 3ACJC& de )ransact1 SQL, puede consultar la siguiente in!ormacin en la a$uda de SQL Server 7<<@: ms1help:**GS"SQLCC"v=*GS"SQLS2D"v="en*tsqlre!=*html*K=a9?@Ka1?7!51 97K=1 K=K71!<>777=>7<a5"htm /sto lo he de ado para el !inal, el e emplo se ha desarrollado utili.ando 2isual 3asic "4/) 7<<@ $ SQL Server 7<<@, pero deber-a !uncionar con cualquier versin de las aplicaciones mencionadas" Si usted tiene dudas acerca de lo mencionado en este documento, sugerencias, correcciones u otras inquietudes, por !avor, pngase en contacto con el autor por medio de correo electrnico" /ste documento puede distribuirse completa o parcialmente por cualquier medio, siempre $ cuando se mencionen los datos del autor"

Juan Carlos Rojas Vargas !ubical "R#$ Costa Rica E64ail7 juancarlosr84sn.co4

También podría gustarte