Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Unavailable database (https://www.clubdelphi.com/foros/showthread.php?t=33077)

Luzma 27-06-2006 01:55:23

Unavailable database
 
Hola,

En el entendido que Unavailable database aparece cuando FireBird no se ha iniciado o cuando la base de datos no existe (corríjanme si estoy equivocado), ¿existe alguna forma de evitar que este mensaje aparezca? y en su lugar mostrar otro mensaje de error (en español por ejemplo o las instrucciones para iniciarlo ...).

Gracias por su ayuda.

nemesio 27-06-2006 03:05:49

<P>Prueba con este código, a mi me funciona a las mil maravillas. Lo incluyes en tu Datamodule</P>
<P>
Cita:

</P>
<P>&nbsp;</P>
<P>....</P>
<P>resourcestring<BR>&nbsp; errConnectBD = 'Error conectando con la base de datos.'#13#13'Mesaje de error: '#13'%s';<BR>var<BR>&nbsp; DataBases: TDataBases;</P>
<P>implementation</P>
<P>{$R *.dfm}</P>
<P><BR>function TDataBases.Connect: boolean;<BR>begin<BR>&nbsp; Result := true;</P>
<P>&nbsp; // Si estamos conectados, nos desconectamos<BR>&nbsp; if IBDatabase1.Connected then<BR>&nbsp;&nbsp;&nbsp; IBDatabase1.Connected := false;</P>
<P>&nbsp;</P>
<P>&nbsp; try<BR>&nbsp;&nbsp;&nbsp; IBDatabase1.Connected := true;<BR>&nbsp; except<BR>&nbsp;&nbsp;&nbsp; on E: Exception do<BR>&nbsp;&nbsp;&nbsp; begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShowMessage(Format(errConnectBD, [E.Message]));</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //el E.Message contiene el Mensaje&nbsp;de Error<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Result := false;<BR>&nbsp;&nbsp;&nbsp; end;<BR>&nbsp; end;</P>
<P>end;<BR></P>
<P>
</P>
<P>&nbsp;</P>
<P>para llamar la función lo puedes hacer en el archivo .dpr de tu proyecto despues que se crea el formulario para el datamodule de la siguiente manera:</P>
<P>&nbsp;</P>
<P>
Cita:

</P>
<P>if not Databases.Connect then<BR>&nbsp; begin<BR>&nbsp;&nbsp;&nbsp; FreeAndNil(Databases);<BR>&nbsp;&nbsp;&nbsp; Exit;<BR>&nbsp; end;</P>
<P>
</P>
<P>&nbsp;</P>
<P>Espero que te funcione y Suerte</P>

nemesio 27-06-2006 03:19:59

Aquí va de nuevo
Prueba con este código, a mi me funciona a las mil maravillas. Lo incluyes en tu Datamodule Cita:
....
resourcestring
errConnectBD = 'Error conectando con la base de datos.'#13#13'Mesaje de error: '#13'%s'
var
DataBases: TDataBases;
implementation
{$R *.dfm}

function TDataBases.Connect: boolean;
begin
Result := true;
// Si estamos conectados, nos desconectamos
if IBDatabase1.Connected then
IBDatabase1.Connected := false;
try
IBDatabase1.Connected := true;
except
on E: Exception do
begin
ShowMessage(Format(errConnectBD, [E.Message]));
//el E.Message contiene el Mensaje de Error
Result := false;
end;
end;
end;


para llamar la función lo puedes hacer en el archivo .dpr de tu proyecto despues que se crea el formulario para el datamodule de la siguiente manera:
Cita:
if not Databases.Connect then
begin
FreeAndNil(Databases);
Exit;
end;


Espero que te funcione y Suerte.


La franja horaria es GMT +2. Ahora son las 08:48:38.

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