This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Libreria/Excepciones.pas
2007-06-26 08:08:27 +00:00

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.