Ver Mensaje Individual
  #3  
Antiguo 20-04-2007
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Reputación: 22
Manuel Va por buen camino
Cita:
Empezado por Manuel
Hola amigos del Club, estoy dejando atras las ttable (cambiando por la pestaña Interbase (IB, Creo) en delphi 5) para conectarme a una base de datos INTERBASE que además estoy migrando a FIREBIRD 2.0, el tema es el siguiente tengo una base de datos que la conecto con el objeto TIBEDataBase, todo bien uso query IB, todo bien le paso el nombre y la ruta de la base de datos física de esta manera:

Código Delphi [-]
procedure TDm.IBDatosBeforeConnect(Sender: TObject);
begin
     IBDatos.DatabaseName := 'E:\bddsistemas\DatosSanignacio\colacion.GDB';
end;

Ahora, en una aplicación más sofiticada esa ruta debería estar en un archivo configuración, como .ini que se yo, por defenir, mi pregunta concreta es que pasa si esa ruta no corresponde a la realidad, la aplicación me reportaría un error, mas seguiría con la ejecución, como podría capturar el error?, generar mi propio mensaje y terminar la aplicación. Algo trate con try .. except, pero no logro saber donde lo puedo colocar. Agradesco desde ya su ayuda.
Parece que plantee mal mi pregunta pero ahí va de nuevo:

Mi idea es, como capturo el error por una conexión fallida, algo como esto, que me funciona muy bien:

Código Delphi [-]
procedure TDm.IBDatosBeforeConnect(Sender: TObject);
var
  sPath: string;
begin
   sPath := 'E:\bddsistemas\DatosSanignacio\colacion.GDB';
   if not FileExists(sPath) then
      begin
        ShowMessage('No se encuentra la base de datos '+sPath+' por lo tanto finalizará la sesión');
        Application.Terminate;
        exit;
      end;  
     IBDatos.DatabaseName := sPath;

end;

ahora que pasa si la base de datos colacion.GDB, esta corrompida o simplemente no es un base de datos interbase?, mi pregunta es como capturo ese error, por que en estos momentos solo capturo el error si el archivo colacion.gdb no se encuentra en el directorio especificado. Gracias.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita