Hola Sonia, yo utilizo el restore de SQLDMO, y me funciona perfecto, aquí te 
envió un ejemplo

 

Private Sub BotonRestore_Click()

 

    Dim oRestore As New SQLDMO.Restore

    Dim sRuta As String

    

    

    sRuta = App.Path + "\BK_" + BaseDeDatosSQL

    If MsgBox("Restaurar sistema desde " + sRuta + vbCrLf + "a la base " + 
BaseDeDatosSQL, vbQuestion + vbYesNo + vbDefaultButton2, "Restaurar copia de 
seguridad") = vbYes Then

       BotonSalir.Enabled = False

       BotonRestore.Enabled = False

       BotonBackup.Enabled = False

       Screen.MousePointer = 11

       oRestore.Database = ServidorSQL

       oRestore.Files = sRuta

       oRestore.SQLRestore goSQLServer

       Screen.MousePointer = 0

       BotonSalir.Enabled = True

       BotonRestore.Enabled = True

       BotonBackup.Enabled = True

       MsgBox "Base de datos restaurada con éxito"

    End If

 

End Sub

 

Atte, José Luis Agosta

 

   _____  

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Sonia Perez Peña
Enviado el: Viernes, 12 de Enero de 2007 10:06
Para: vbusers List Member
Asunto: [vbusers] Sobre conexion de VBasic y SQL

 

Calvin, el problema es el siguiente, mira tengo que implementar el restore de 
una base de dato, entonces cuando entro a la aplicación, tengo que conectarme 
por primera vez, luego la cierro y la pongo nothing y close, pero es que cuando 
voy hacer restore conectada a Master por el codigo que ya envie, no obstante te 
lo envio me dice que tengo conexiones abierta, sin embargo las puedo tumbar con 
el kill de SQL y entonces si puedo hacer el restore observa

 

En fin lo que quisiera es no utilizar el kill para tumbar nada

 

 

Nota: aquí va lo quiero hacer, si pueden ayudarme en algo mejor lo aceptaria

 

 

        Set Dbs = Nothing    

  

        frm_Main.CrystalReport1.Reset

        cnnLocal.Open coneccion_ado_master

etiqueta:

        Screen.MousePointer = vbHourglass

         error_var = "Restaura"

         

SQL = "SELECT  sysprocesses.spid " & _

        " FROM  sysprocesses INNER JOIN sysdatabases ON sysprocesses.dbid = 
sysdatabases.dbid " & _

        " WHERE   hostname='" & Environ("COMPUTERNAME") & "'" & " and  
(sysdatabases.name = '" + basedatos + "') order by sysprocesses.spid"

         

        

        If rsAdo.State = adStateOpen Then rsAdo.Close

           rsAdo.Open SQL, coneccion_ado_master

 

              While Not rsAdo.EOF

                  SQL = "Kill " & rsAdo("spid")

                  cnnLocal.Execute SQL

                  rsAdo.MoveNext

              Wend

                  

           

           

           Rado = cnnLocal.Execute("sp_helpserver")

           If Trim(Rado(1)) <> Environ("COMPUTERNAME") Then

              camino = "\\" + Environ("COMPUTERNAME") + "\" + Nombre_Dir

           Else

              camino = strPath_MDB

           End If

          

          

          

          'cnnLocal.Execute "RESTORE DATABASE " + basedatos + " from  DISK ='" 
& camino & "'" & _

          " WITH MOVE '" & fbd & "' TO '" & cbd & "', Move '" & flo & "' TO '" 
& clog & "', REPLACE "

          

          cnnLocal.Execute "RESTORE DATABASE " + basedatos + " from  DISK ='" & 
camino & "'"

          MsgBox "Restaura realizada satisfactoriamente. El programa abortará, 
vuelva a entrar", , TMsg

          Screen.MousePointer = vbDefault

          End

 

 

 

 

 

 

   _____  

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Daniel Calvin
Enviado el: Jueves, 11 de Enero de 2007 05:28 p.m.
Para: vbusers List Member
Asunto: [vbusers] Sobre conexion de VBasic y SQL

 

Hola Sonia

 

En que lugar te da error? cuandop queres hecer que?

Estas segura que no tenes abierta mas de una coneccion?

 

>>> para ello debo tumbar las conexiones en el servidor

 

Esa no es la forma en que se debe manejar las conexiones en ADO.

 

Podes mandar tu string de conexion?, asi s ete puede decir si o se activo el 
connection pool.

 

Es un mecanismo de ADO que no cierra las conexiones cuando haces un close, se 
encarga de mantenerlas para reutilizarlas.

 

Eso puede ser uno de los motivos.

El otro motivo es que tengas mas de una conexion ADO activa y solo estes 
cerrando una.

 

Cual es el error que mencionas?, cuando haces que operación se dispara el error?

 

Manejo ADO hace mucho tiempo, desde que estab en beta, alla 1995, tengo incluso 
un framework para simplificar el manejo de ADO, te puedo asegurar que no te 
debería estar pasando lo que contas. 

 

Podes mandar un poco de código?

 

Daniel Calvin

 


 

El día 11/01/07, Sonia Perez Peña <HYPERLINK "mailto:[EMAIL PROTECTED]"[EMAIL 
PROTECTED]> escribió: 

Mira Sebastian te cuento, el problema es que yo uso VBasic 6.0 con SQLserver, 
entonce estoy implementando la Restaura dentro del Modulo, para ello debo 
tumbar las conexiones en el servidor, hice lo siguiente 

SQL = "SELECT    sysprocesses.spid " & _

        " FROM  sysprocesses INNER JOIN sysdatabases ON sysprocesses.dbid = 
sysdatabases.dbid " & _ 

        " WHERE   hostname='" & Environ("COMPUTERNAME") & "'" & " and  ( 
HYPERLINK "http://sysdatabases.name/"; \nsysdatabases.name = '" + basedatos + 
"') "

  

        If rsAdo.State = adStateOpen Then rsAdo.Close

           rsAdo.Open SQL, conect_Ado_master

           If Not rsAdo.EOF Then

              While Not rsAdo.EOF

                  SQL = "Kill " & rsAdo("spid")

                  cnnLocal.Execute SQL

 

                  rsAdo.MoveNext

              Wend

           End If

 

Es decir tumbo estas conexiones porque si no me da error a pesar de que le doy 
close y nothing

 

   _____  

De: HYPERLINK "mailto:[email protected]"; [EMAIL PROTECTED] [mailto:HYPERLINK 
"mailto:[email protected]"; [EMAIL PROTECTED] En nombre de Sebastian Ariel 
Gambolati
Enviado el: Jueves, 11 de Enero de 2007 01:34 p.m.
Para: vbusers List Member
Asunto: [vbusers] Sobre conexion de VBasic y SQL

 

Esta bien lo que vos decis, pero seguramente en el "Destructor" de la clase 
Conection, hay una llamada al cierre de conexiones. Sino, en todas mis 
aplicaciones vivirian las conexiones abiertas hasta que el SQL Server se digne 
a cerrarlas. Que dicho sea de paso, no le confio eso al SQL Server. 

Daniel Calvin <HYPERLINK "mailto:[EMAIL PROTECTED]" [EMAIL PROTECTED] > 
escribió:

Perdón hay un error de concepto:

 

Set Conexion = Nothing Libera la referencia a la conexión para que el runtime 
de vb pueda liberar la referencia al objeto.


Lo correcto es hacer:

        Conexion.Close

 

Y cuando ya no se utilice el objeto Conexion, si hacer:

        Set Conexion = Nothing 

 

Daniel Calvin


 

El día 11/01/07, Sebastian Ariel Gambolati <HYPERLINK "mailto:[EMAIL 
PROTECTED]" \n [EMAIL PROTECTED]> escribió: 

El Set Conexion = Nothing, deberia cerrarte la conexion (como cualquier recurso 
que estes usando). Pero por si las dudas, podes hacer: Conexion.Close

Sonia Perez Peńa <HYPERLINK "mailto:[EMAIL PROTECTED]" [EMAIL PROTECTED] > 
escribió: 

Hola he detectado que a pesar de poner a Nothing la conexión queda dormida por 
un espacio en el servidor, ?alquien pidia decirme como resolver esto 

 

Sebastian Gambolati

   _____  

Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas, 
está en Yahoo! Respuestas (Beta).
HYPERLINK "http://ar.answers.yahoo.com/"; \nProbalo ya! 




-- 
Daniel A. Calvin
Cooperator Team Member
HYPERLINK "http://www.cooperator.com.ar/"; \nhttp://www.cooperator.com.ar
Microsoft Certified Professional 

 

Sebastian Gambolati

  

   _____  

Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
HYPERLINK "http://ar.answers.yahoo.com/"; \nProbalo ya! 




-- 
Daniel A. Calvin
Cooperator Team Member
HYPERLINK "http://www.cooperator.com.ar"http://www.cooperator.com.ar
Microsoft Certified Professional 


--
S.J.L. Soft Computación, utiliza software original.
Se certificó que el correo Entrante no contiene virus.
Verificado por AVG.
Versión: 7.5.433 / Base de datos de virus: 268.16.10/624 - Fecha de la versión: 
12/01/2007 14:04



-- 
S.J.L. Soft Computación, utiliza software original.
Se certificó que el correo Saliente no contiene virus.
Verificado por AVG.
Versión: 7.5.433 / Base de datos de virus: 268.16.10/624 - Fecha de la versión: 
12/01/2007 14:04
 

Responder a