FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
Puedes crear un procedimiento y le llamas cuando proceda para que te cierre todo lo que creas conveniente.
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:
|
#5
|
|||
|
|||
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. |
|
|
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 |
|