git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
69 lines
3.2 KiB
ObjectPascal
69 lines
3.2 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
Copyright (©) 2002. Rodax Software.
|
|
===============================================================================
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
|
|
bajo el que se suministra.
|
|
-----------------------------------------------------------------------------
|
|
Web: www.rodax-software.com
|
|
===============================================================================
|
|
Fecha primera versión: 03-11-2002
|
|
Versión actual: 1.0.0
|
|
Fecha versió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ón con el servidor.';
|
|
msgLoginIncorrecto = 'No se puede iniciar la sesión. Compruebe que su nombre de usuario y su contraseña son correctos y repita la operacion.';
|
|
msgBDSoloLectura = 'Esta base de datos es sólo de lectura. No se puede realizar ninguna modificación en los datos.';
|
|
msgFichBDSoloLectura = 'No se puede iniciar la sesió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á en mantenimiento. Inté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.
|