PDA

Ver la Versión Completa : Cómo mostrar el error de que la BD de datos está siendo utilizada por otra aplicación


cepriego
27-01-2008, 17:46:17
Hola a todos, tengo el siguiente problema utilizando Firebird Embedded.

Tengo dos aplicaciones que hacen uso de una base de datos Firebird empleando Firebird Embedded 2.0.

Como sabrán, siendo una versión monoplaza, no se permite que más de una aplicación tenga acceso a la BD a la vez.

Yo lo que deseo es mostrar un mensaje al usuario, informándole de que hay otra aplicación haciendo uso de la base de datos, sin embargo, cuando ejecuto la aplicación (fuera de Delphi) el mensaje no aparece, sólo se escucha el sonido del mensaje (ya saben ese bum de los mensajes de error XD) pero el mensaje no se muestra al usuario.

Yo lo que hago es lo siguiente:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)try DB.open Except on E: exception
Showmessage('Mensaje')
end;


En tiempo de diseño el error si aparece, sin embargo cuando ejecuto el .exe no pasa nada. Sé también que este código no funciona del todo bien, ya que puede haber muchos otros motivos por los cuales la base de datos no pueda abrirse, y me gustaría saber como pillar el error exacto que se da cuando la BD esta siendo usada por otra aplicación.

Estoy usando Delphi 6.0 y los componentes de acceso son los MDO 9.0.

Alguna sugerencia o idea?

Se los agradeceré mucho :)

Lepe
28-01-2008, 01:33:17
Más o menos:

procedure TfrmMdi.ApplicationEvents1Exception(Sender: TObject; E: Exception);
var strDebug:string;
strMessage :string;
begin
strMessage := E.Message;
if (e is EMDOError) then
begin
strDebug := 'SqlCode: ' +inttostr(EMDOError(E).SQLCode) + espacio + E.ClassName;
dtm.log.Add(strMessage + saltolinea + strDebug);
end;
// else
ShowMessage('Al usuario: ' + strMessage + saltodoble +
'Mensaje de Debug: ' + strDebug + saltodoble );

end;


Por internet existen listados con el sqlcode, mensaje y breve significado. busca por fb_1_5_errorcodes.pdf ;)

Saludos

ixMike
28-01-2008, 01:37:39
saltodoble



:D jeje, curiosa forma de decir #13#13 :D


Salu2.