Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Detectar desconexión con servidor

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Detectar desconexión con servidor Responder citando

Hola amigos,

Tengo una aplicación que se conecta a un servidor SQL Server a través de ADO, pero tengo problemas cuando se presenta una desconexión con el servidor, ya que me doy cuenta de ello, cuando intento abrir una tabla o realizar un Query...
Cómo detecto una perdida de conexión con un servidor SQL server, cuando uso ADOConnection?

he intentado mediante un Timer cada xxx tiempo preguntar por el estado de la conexión:

if(ADOConnection1->Connected == false)
{
ShowMessage("Conexión perdida con el servidor");
.......
}
else
ShowMessage("Conexión OK");

Esto solo funciona cuando ejecuto la aplicación y la conexión no está presente..pero si ejecuto la aplicación, y detengo el servidor SQL, no aparece el mensaje de "Conexión perdida con el servidor"...en otras palabras, no logro determinar el estado de la conexión con el servidor.

saludos,
_________________
Julian Uribe Hernandez
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Indagando un poco en tu pregunta y buscando algo por internet, casi nadie de los componentes manejan este tipo de eventos. es algo muy encapsulado por decirlo de esa manera.

pero existe una posibilidad aun que muy remota es la de capturar el evento de desconexion pero no del programa, si no del compoentente que se conecta al servidor de la base de datos
interesa para: SQL, Interbase, Firebird y casi la mayoria de personas que como nosotros, intentamos mejorar o cubrir ciertas caracteristcas en en alguno de los casos dependen de la seguridad del usuario final, aun que es claro que nosotros como desarrolladores de software debemos cubrir

1.- todos los componentes que se conectan via remota, usan un Socket, WinSocket o TSocket como quiera llamarse, cada uno de ellos ejecuta un hilo (Thread) para mantener su conexion, pero es obio que no se permite mas de 16 conexion eso dice la ayuda de windows cuando se utilizan sockets, pero los componentes aceptan mas de 16 conexiones, bien la opcion que aun yo mismo ando buscando para firebird quien maneja IBEvents es enviar a las terminales desde el servidor que el "servidor" se ha "caido", pero no de enviar de la estacion --> al Servidor, por que? bien por que al servidor no le interesa quien se conecte, si no las estaciones que el servidor no se "caiga", cuando esto sucede pues se deben esperar, pero si se cae una estacion. por que se apagó, se cerro la aplicacion, el unico responsable de ello es el usuario final. y la perdida de datos pasa a ser responsabilidad del usuario, la unica opcion que tenemos mientras no se encuentre algo mas fino, es avisarle al usuario que no desconecte la terminal por que puede corromper los datos..

ahora bien del lado del servidor, algunos como firebird traen el codigo fuente que de muy buena manera ando estudiando, para saber cuando una estación se conecta como "cliente" a la maquina que tiene el mismo software pero que funciona como "servidor", y cuando esta a punto de fallar avisar a las demas estaciones...

en que caso no podemos detectar cuando el usuario "gracioso" desconecta de la corriente el servidor...

pero como digo, es parte del usuario final.

lo que podemos hacer es decirle que no lo desconete, pero los demas casos en los que no tienen un regulador para mantener la energia y el servidor se apaga o que en lugar de aplastar el boton de la bandeja del CD, presiona un boton "reset" ahi si no podemos detener al servidor

si encuentro parte de la solucion, ten por seguro que aqui en este foro se pondrá y a todos nos va a servir

saludos
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias por tu ayuda César,
Lástima que no se pueda solucionar aquello de detectar la desconexión del servidor....pero seguiré investigando.

tan pronto encuentre respuesta, la publicaré.
_________________
Julian Uribe Hernandez
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.