Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2007
arantzal arantzal is offline
Miembro
 
Registrado: oct 2004
Posts: 80
Poder: 20
arantzal Va por buen camino
Cerrar conexiones que quedan abiertas

Buenas,
tengo un problemilla que no consigo solucionar, a ver si alguien me puede ayudar.
Trabajo con Delphi 7 y SQL Server. La cuestión es que cuando algún usuario cierra mal la aplicación, se quedan conexiones abiertas. ¿Cómo puedo cerrarlas? ?Hay alguna forma de hacerlo?.
Gracias de antemano.
Saludos.
Responder Con Cita
  #2  
Antiguo 24-04-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
en el evento onClose:

Código Delphi [-]
adoConexion.active := false;
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 24-04-2007
arantzal arantzal is offline
Miembro
 
Registrado: oct 2004
Posts: 80
Poder: 20
arantzal Va por buen camino
Muxas gracias droguerman por la ayuda.

Pero lo que quiero, es de alguna forma, mediante una sentencia sql o algo así eliminar las conexiones que mi aplicación ha dejado abiertas. Lo que pasa es que tengo una query con subquerys, y al hacer el open se me abren varias conexiones. Y si un usuario cancela cuando la query se está ejecutando, por mucho que pongo el active de la query a false, o cierre la query... no se cierran todas las conexiones. Lo que quiero es cerrar las que me han quedado abiertas.

Si alguien me puede ayudar...

Gracias de antemano.
Saludos.
Responder Con Cita
  #4  
Antiguo 24-04-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Puedes crear un procedimiento y le llamas cuando proceda para que te cierre todo lo que creas conveniente.
Código Delphi [-]
Procedure Cierra_Conexiones();
begin
Try
MiQuery1.Close;
LoqueSea.Close;
{Aquí cierras todo lo que sea necesario}
except
end;
end;

Por lo que veo, quizás te convenga más un bucle que recorra todas las tablas y consultas y vaya cerrándolas una a una.
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 02-05-2007
arantzal arantzal is offline
Miembro
 
Registrado: oct 2004
Posts: 80
Poder: 20
arantzal Va por buen camino
Buenas,
antes que nada gracias por contestarme.
He intentado haciendo .free y .close tanto de la conexión, como de la query y no me hace caso.
Yo creo que lo que me vendría bien sería detectar las conexiones que se quedan abiertas en el SQL Server y hacer un kill de esos procesos. Qué opinais?. Es seguro hacer esto?.

Pero aqui también tengo una duda, xk yo puedo tener que la misma aplicación se esté ejecutando varias veces en un mismo equipo, pero en ese caso sólo quiero cerrar las conexiones abiertas de la aplicación o versión que se cierra mal, las otras ejecuciones de la aplicación debería de seguir ejecutandose correctamente.

Hasta el momento he llegado a detectar todas las conexiones abiertas de la siguiente forma:

select spid
from master.dbo.SysProcesses where Program_name = 'xx xxx' así me obtiene los spid de los procesos abiertos para la aplicación 'xx xxx' . Siendo el spid el identificador de los procesos. Pero,¿cómo se puede diferenciar de qué ejecución o versión se trata????

Gracias.
Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ventanas que se quedan detras de otras GRRR yigo Varios 1 23-03-2005 16:54:59
¿ QUedan registrados los accesos por red en un PC ? Javier_A API de Windows 0 08-03-2005 17:19:40
Cerrar Tablas y conexiones en DBExpress cesar_picazo Conexión con bases de datos 0 08-02-2005 03:45:10
.dll's que quedan tras desinstalación santana Oracle 8 26-04-2004 22:45:23
Tablas Abiertas Ulises Providers 2 02-03-2004 12:50:23


La franja horaria es GMT +2. Ahora son las 23:10:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi