Hola Sonia
Mirando el código veo que usas CR, tal vez la conexion que queda activa sea
la del reporte.
Te diría que para asegurarte hagas lo siguiente, pone un break point antes
del close de la conexion.
Monitorea la cantidad de conexiones abiertas en ese instante.
Ejecuta el close de la conexión.
Fijate nuevamente cuantas conexiones se mantienen al server.
Si es eso habría que ver como hacer para que el CR libere la conexion.
Proba y contame.
Daniel
2007/1/12, Sonia Perez Peña <[EMAIL PROTECTED]>:
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* <[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 (
sysdatabases.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:* [email protected] [mailto:[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 <[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* < [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 <[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).
*Probalo ya! <http://ar.answers.yahoo.com/>*
--
Daniel A. Calvin
Cooperator Team Member
http://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).
*Probalo ya! <http://ar.answers.yahoo.com/>*
--
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional
--
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional