Perdida de Conexión con TADOConnection
Buenos días, tengo una aplicación que se conecta a una base de datos SQL Server 2005 a través del un componente TADOConnection, el problema es que cuando la aplicación por algún motivo pierde la conexión con la Base de Datos (problemas de LAN, etc) empieza a tirar "Error en Vinculo de Comunicación" y no para hasta que cierro la aplicación y la vuelvo a abrir. Hay alguna manera de trabajar sobre ese error, evitar ese mensaje, que avise que no tiene conexión desde la aplicación y poder aguardar a que la conexión vuelva??
|
Revisa la propiedad KeepConnection y los eventos OnDisconnect, BeforeDisconnect, AfterDisconnect y BeforeConnect
|
No lo puedo hacer funcionar con esos eventos.-
|
Cita:
. |
Estuve haciendo pruebas y cuando se pierde la conexión TCP del componente TADOConnetion la aplicación tira el error y se traba, use los eventos OnDisconnect, BeforeDisconnect, AfterDisconnect y BeforeConnect pero no hacen nada cuando se corta la conexión aparece este error: "Proveedor de TCP: Se ha forzado la interrupción de una conexión existente por el host remoto" y se traba todo.-
|
Hola adripugliesso.
Sin saber como está configurada la conexión y ni siquiera una línea de código, es muy difícil poder sugerirte algo. Saludos :) |
En una LAN común, una de las PC tiene el SQL server 2005, entonces desde la otra la accedo con una aplicación básica 1 form con un TADOConnection, y una consulta con un TADOQuery a la PC con el SQL, conecto el ADOConnection en el evento ONSHOW del form y a través de un TButtom actualizo el TADOQuery haciendo un (CLOSE/OPEN), teniendo el cable de red conectado anda todo perfecto, pero cuando saco el cable de red de la PC y presiono el TButton para actualizar el TADOQuery tira el siguiente error: "Proveedor TCP: Se ha forzado la interrupción de una conexión existente por el host remoto" y se traba la aplicación. Lo que yo quiero es evitar eso y que simplemente me muestre un Showmessage diciendo que se perdió conexión con la DB y que vuelva a intentar mas tarde y luego al conectarle el cable de red el sistema siga funcionando normalmente.-
|
SOLUCIONADO:
Agrege un TApplicationEvents y en USES ComObj; y luego en el evento OnException del TApplicationEvents
|
Muy bien, pero una curiosidad: ¿por qué le quitas el cable de red? :confused:
|
para simular cortes de red y probar de esta manera si la aplicación funciona ante un corte.-
|
La franja horaria es GMT +2. Ahora son las 11:03:57. |
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