PDA

Ver la Versión Completa : !!Error a desconectarme de Firebirds!!


acertij022
24-02-2004, 13:59:42
Hola Foro creo que mi pedido de ayuda va en esta parte del foro ,mi problema es el siguiente:
Tengo una aplicación que se conecta a una base de datos remota atraves de Firebird(1.0.3.972) que funciona correctamente pero al desconectar el cable de red me tira el siguiente error:

Unable to complete networh request to host "192.168.0.2".
Error reading data from the connection.
unknown Win32 error 10054

y al tratar de salir de la aplicación me da el siguiente error:

Dataset open

para conectarme a la base utilizo:TIBDatabase, TIBTransaction, TDataSource, TIBUpdateSQL, TIBQuery, TIBDataSet
ya intente de desconectarlos a todos los comonentes que mencione pero sigue tirando los errores que mensione y no me cierra la aplicacion utilizo application.terminate ,otro dato ni haciendo Ctrl+Alt+Supr lo puedo cerrar a la aplicación.
Uso Delphi6 Enterprise con windows 2000.
¿Que estoy haciendo mal?, ¿que debo hacer para que por lo menos me deje cerrar la aplicación?
Espero anciosamente sus respuestas, de antemano muchas gracias

guillotmarc
24-02-2004, 14:59:23
Hola.

Prueba a hacer un Close del TIBDatabase antes de desconectar el cable de red.

Saludos.

acertij022
24-02-2004, 18:14:30
Hola.

Prueba a hacer un Close del TIBDatabase antes de desconectar el cable de red.

Saludos.

Entiendo lo que me decis , pero el tema es que no se como detectar cuando ya no se encuentra conectado el clable de la red o esta fuera de la red para cerrar el TIBDatabase :(

gendelphi
26-02-2004, 05:43:15
Prueba capturando las excepciones que ocurren en tu aplicación, esto lo haces asi:

Define en la seccion private de tu formulario principal la siguiente funcion:

procedure AppException(Sender: TObject; E: Exception);

Luego en el evento OnCreate de tu formulario principal:

Application.OnException:=AppException;

Y por ultimo implementas la funcion, para que trate a la exception generada, no tengo a la mano el nombre de la excepcion que se genera, pero no creo que sea dificil averiguarlo.

procedure TFormMainMenu.AppException(Sender: TObject; E: Exception);
begin
//Checar que tipo de excepcion es, y hacer alguna accion
end;