Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-04-2007
mr_mustard mr_mustard is offline
Registrado
 
Registrado: feb 2006
Posts: 8
Poder: 0
mr_mustard Va por buen camino
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...
Responder Con Cita
  #2  
Antiguo 09-04-2007
mr_mustard mr_mustard is offline
Registrado
 
Registrado: feb 2006
Posts: 8
Poder: 0
mr_mustard Va por buen camino
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 "EIBClientErrorataset open".

Este es un problema que me llevó casi una semana resolver, espero ayudar para que nadie más pase por estos problemas.
Responder Con Cita
  #3  
Antiguo 09-04-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar el contenido de un DataSet a otro DataSet Javi2 Varios 82 22-11-2022 09:26:16
Open Officce 2.2.0 poliburro Noticias 2 31-03-2007 10:07:24
window.open Marquitos HTML, Javascript y otros 1 02-05-2006 18:39:51
Como capturar Excepcione EIBClientError dmagui Firebird e Interbase 7 08-02-2006 07:52:29
Delphi con Open GL jeluso Gráficos 3 05-09-2005 21:57:41


La franja horaria es GMT +2. Ahora son las 18:40:01.


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
Copyright 1996-2007 Club Delphi