 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Julian Ens

Registrado: 23 Jul 2004Mensajes: 47
|
Publicado: Mar 21 Mar, 2006 9:55 pm Asunto: Detectar desconexión con servidor |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 22 Mar, 2006 7:30 am Asunto: |
|
|
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 _________________
 |
|
| Volver arriba |
|
 |
Julian Ens

Registrado: 23 Jul 2004Mensajes: 47
|
Publicado: Mie 22 Mar, 2006 1:28 pm Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|