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)
-   -   Cómo mostrar el error de que la BD de datos está siendo utilizada por otra aplicación (https://www.clubdelphi.com/foros/showthread.php?t=52658)

cepriego 27-01-2008 17:46:17

Cómo mostrar el error de que la BD de datos está siendo utilizada por otra aplicación
 
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 [-]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:
Código Delphi [-]
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

Cita:

Empezado por Lepe (Mensaje 261391)
saltodoble

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


Salu2.


La franja horaria es GMT +2. Ahora son las 00:33:04.

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