{
===============================================================================
  Copyright (©) 2001. 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: 01-10-2001
  Versión actual: 1.0.0
  Fecha versión actual: 01-10-2001
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
===============================================================================
}

unit Excepciones;

interface

uses
  sysutils, IB, db;

procedure TratarExcepcion(E: Exception); overload;
procedure TratarExcepcion(E: EIBError); overload;

implementation
uses
  Mensajes, IBErrorCodes, Literales;

procedure TratarExcepcion(E: Exception);
begin
  VerMensaje(E.Message);
end;

procedure TratarExcepcion(E: EIBError);
begin
  case E.IBErrorCode of
    isc_network_error         : VerMensajeFmt(msgExcIBEspecifico, [msgExcErrorConexion, E.SQLCode, E.IBErrorCode, E.Message]);
    isc_login                 : VerMensajeFmt(msgExcIBEspecifico, [msgExcLoginIncorrecto, E.SQLCode, E.IBErrorCode, E.Message]);
    isc_read_only_database    : VerMensajeFmt(msgExcIBEspecifico, [msgExcBDSoloLectura, E.SQLCode, E.IBErrorCode, E.Message]);
    isc_no_priv               : VerMensajeFmt(msgExcIBEspecifico, [msgExcFichBDSoloLectura, E.SQLCode, E.IBErrorCode, E.Message]);
    isc_unique_key_violation  : VerMensajeFmt(msgExcIBEspecifico, [msgExcClavePrimaria, E.SQLCode, E.IBErrorCode, E.Message]);
  else
    VerMensajeFmt(msgExcIBGeneral, [E.SQLCode, E.IBErrorCode, E.Message]);
  end;
end;

end.
