Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   EIBClientError: DataSet open (https://www.clubdelphi.com/foros/showthread.php?t=42096)

mr_mustard 03-04-2007 22:32:18

EIBClientError: DataSet open
 
Tengo una aplicación que estra permanentemente conectada a un servidor Interbase/Firebird. Cuando el servidor cae, el programa intente reconectar. El problema es que después que la reconexión tiene éxito, cuando trato de ejecutar una consulta arroja un error "DataSet open".El error es arrojado aun cuando hago un Query.Close antes.
A mi me parece que es un EIBClientError, pero no he encontrado ninguna información al respecto.
Parece que nadie ha podido lidiar con este error. Espero que alguien pueda darme una respuesta.
P.D. Y si, ya usé IBDatabase1.ForceClose y nada...

mr_mustard 09-04-2007 16:01:09

Solución al problema EIBClientError: Dataset open
 
Hola!
Me contesto a mi mismo. Al parecer este es un tema que ha sido muy poco abordado, pues he investigado en internet y no he hallado gran cosa al respecto. Por suerte encontré un documento de un buen samaritano en el cual también se queja de que ni en los foros ni en ningún lugar se puede encontrar información de calidad. Bueno aqui comparto parte del código que resolvió el problema:

try
IBQuery1.Open;
except
end;
try
IBQuery2.Open;
except
end;
try
IBQuery3.Open;
except
end;
try
IBQuery4.Open;
except
end;


IBDatabase1.ForceClose;

Tenía 4 IBQuerys y parece que esta es la única forma de que hagan close y desaparezca el mensaje "EIBClientError:Dataset open".

Este es un problema que me llevó casi una semana resolver, espero ayudar para que nadie más pase por estos problemas.

Lepe 09-04-2007 20:25:39

Yo intuyo que sería así:
Código Delphi [-]
try
    IBQuery1.Open;
    IBQuery2.Open;
    IBQuery3.Open;
    IBQuery4.Open;
except
  IBDatabase1.ForceClose;
end;
IBDatabase1.Connected := true; // ahora conectamos de nuevo, y abriríamos de nuevo las consultas.
Porque con tu código, siempre hará un ForceClose, ¡¡ siempre !!

Con este código, solo ejecutará el ForceClose si hay algún tipo de error (sea cual sea) al abrir cualquiera de las 4 consultas.

Saludos


La franja horaria es GMT +2. Ahora son las 13:30:39.

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