PDA

Ver la Versión Completa : Reconectar Base de Datos Firebird


marcosPedraza
06-06-2012, 14:12:22
Buen Día Grupo tengo desarrollado un sistema cliente-servidor en Delphi 7.0 y bd firebird 2.1.
el sistema funciona muy bien pero hace un tiempo atras empezo a caerse la conexion del sistema, en resumidas cuentas como yo trabajo en una organizacion donde la red no depende de mi sino de otro grupo de personas es que no puedo tocar dicha red en fin la red es un desastre hay cables utp cat 3 cat 5 hub de hace 15 años y no hay señas que arreglen el desastre de la red.
Como el sistema se desconecta, programe una ventana residente al lado del reloj de tal forma de que cuando se cae la conexión haga click en dicha ventana y me vuelva a pedir los datos de conexion es decir usuario y contraseña, esto lo hace bien pero cuando estoy en una ventana que tenga una grilla por ejemplo y hago click en el boton buscar me sale un error de "dataset open" utilizo los componentes mdo, me canse de investigar en internet y veo que casi nadie toca este tema, es decir la reconexion se realiza de manera exitosa pero cuando voy a ejecutar la consulta y hago query1.close es que me sale el error ojo a veces funciona y otras veces no es muy raro segun vi este error tambien pasa con los componetes ib ya que lei en este foro alguien que tenia el mismo problema el realiza un try except y coloca query1.open tambien probe esta opcion pero como digo a veces funciona y otras no, si reconecto salgo de la ventana y vuelvo a ingresar funciona de 10, sera que es un problema donde queda en memoria la consulta abierta?, probe de todo ej:
bd.CloseDataSets;;
bd.conected:=false;
etc etc,
Ccomo digo la reconexion se realiza pero si inmediatemente realizo una consulta no funciona pero si salgo de dicha ventana y vuelvo a ingresar si anda pero lo optimo seria que se reconecte y desde este punto siga funcionando
lei y hay muy poca info al respecto inclusive un holandés dice que este problema nunca lo pudo solucionar. en fin necesito ver si se puede hacer algo. gracias....

marcosPedraza
08-06-2012, 19:12:20
Hola Sres del foro, me respondo yo mismo.
por alguna razon cuando yo reconectaba el sistema realizaba un closedataset, y un close a la base de datos, pero lo mismo me seguia marcando el error "dataset open", pese a que cuando yo realizo una consulta,siempre realizo un close a la consulta y un sql.clear, por alguna razon al parecer quedan datos en memoria o algo por el estilo lo que hay que hacer realizar la consulta, usar los datos y desde ahi hacer un close a la consulta, en fin si alguien quiere un ejemplo que me lo pida. gracias...

Casimiro Notevi
08-06-2012, 19:40:56
De todas formas, tienen que arreglar ese desastre de red :rolleyes: