69 lines
3.2 KiB
ObjectPascal
69 lines
3.2 KiB
ObjectPascal
|
|
{
|
|||
|
|
===============================================================================
|
|||
|
|
Copyright (<EFBFBD>) 2002. Rodax Software.
|
|||
|
|
===============================================================================
|
|||
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|||
|
|
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
|
|||
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|||
|
|
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
|
|||
|
|
bajo el que se suministra.
|
|||
|
|
-----------------------------------------------------------------------------
|
|||
|
|
Web: www.rodax-software.com
|
|||
|
|
===============================================================================
|
|||
|
|
Fecha primera versi<EFBFBD>n: 03-11-2002
|
|||
|
|
Versi<EFBFBD>n actual: 1.0.0
|
|||
|
|
Fecha versi<EFBFBD>n actual: 03-11-2002
|
|||
|
|
===============================================================================
|
|||
|
|
Modificaciones:
|
|||
|
|
|
|||
|
|
Fecha Comentarios
|
|||
|
|
---------------------------------------------------------------------------
|
|||
|
|
===============================================================================
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
unit Excepciones;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
sysutils, IB, db;
|
|||
|
|
|
|||
|
|
procedure TratarExcepcion(E: Exception); overload;
|
|||
|
|
procedure TratarExcepcion(E: EIBError); overload;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
uses
|
|||
|
|
Mensajes, IBErrorCodes;
|
|||
|
|
|
|||
|
|
resourcestring
|
|||
|
|
fmtMsgIBGeneral = 'SQLCode: %d'+ #10#13 + 'IBNumber: %d' + #10#13 + '%s';
|
|||
|
|
fmtMsgIBEspecifico = '%s' + #10#13 + #10#13 + 'SQLCode: %d'+ #10#13 + 'IBNumber: %d' + #10#13 + '%s';
|
|||
|
|
msgErrorConexion = 'No se puede establecer conexi<78>n con el servidor.';
|
|||
|
|
msgLoginIncorrecto = 'No se puede iniciar la sesi<73>n. Compruebe que su nombre de usuario y su contrase<73>a son correctos y repita la operacion.';
|
|||
|
|
msgBDSoloLectura = 'Esta base de datos es s<>lo de lectura. No se puede realizar ninguna modificaci<63>n en los datos.';
|
|||
|
|
msgFichBDSoloLectura = 'No se puede iniciar la sesi<73>n. El fichero de la base de datos tiene activado el atributo de s<>lo lectura.';
|
|||
|
|
msgClavePrimaria = 'Ya existe otro registro con el mismo c<>digo.';
|
|||
|
|
msgBDShutdown = 'La base de datos est<73> en mantenimiento. Int<6E>ntelo m<>s tarde.';
|
|||
|
|
|
|||
|
|
procedure TratarExcepcion(E: Exception);
|
|||
|
|
begin
|
|||
|
|
if E.Message <> 'Control '''' has no parent window' then
|
|||
|
|
VerMensaje(E.Message);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TratarExcepcion(E: EIBError);
|
|||
|
|
begin
|
|||
|
|
case E.IBErrorCode of
|
|||
|
|
isc_network_error : VerMensajeFmt(fmtMsgIBEspecifico, [msgErrorConexion, E.SQLCode, E.IBErrorCode, E.Message]);
|
|||
|
|
isc_login : VerMensajeFmt(fmtMsgIBEspecifico, [msgLoginIncorrecto, E.SQLCode, E.IBErrorCode, E.Message]);
|
|||
|
|
isc_read_only_database : VerMensajeFmt(fmtMsgIBEspecifico, [msgBDSoloLectura, E.SQLCode, E.IBErrorCode, E.Message]);
|
|||
|
|
isc_no_priv : VerMensajeFmt(fmtMsgIBEspecifico, [msgFichBDSoloLectura, E.SQLCode, E.IBErrorCode, E.Message]);
|
|||
|
|
isc_unique_key_violation : VerMensajeFmt(fmtMsgIBEspecifico, [msgClavePrimaria, E.SQLCode, E.IBErrorCode, E.Message]);
|
|||
|
|
isc_shutdown : VerMensajeFmt(fmtMsgIBEspecifico, [msgBDShutdown, E.SQLCode, E.IBErrorCode, E.Message]);
|
|||
|
|
else
|
|||
|
|
VerMensajeFmt(fmtMsgIBGeneral, [E.SQLCode, E.IBErrorCode, E.Message]);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|