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)
-   -   como capturar error de registro duplicado (https://www.clubdelphi.com/foros/showthread.php?t=36497)

ajmr81 13-10-2006 22:22:59

como capturar error de registro duplicado
 
necesito poder capturar el error cuando se trata de ingresar un registro a la base de datos y este exista, alguien me puede orientar en como hacerlo.

roman 13-10-2006 22:42:04

¿Ya probaste el evento OnPostError del dataset que estés usando?

// Saludos

maeyanes 13-10-2006 22:42:46

Una forma:

Código Delphi [-]
try
  DataSet.Post
except
  on E: Exception do
    // Aquí verificas el tipo de excepción...
end;

Ahora, si no especificas que tipo de base de datos usas, no te podremos ayudar más...



Saludos...

kalimero 17-10-2006 10:36:07

Hola.
Pues como te comenta Roman, y suponiendo que uses Firebird y los componentes FibPlus, en el evento OnpostError puedes colocar un procedimiento (o sin procedimiento) tal como:
Código Delphi [-]
procedure TdmDatos.InformaError(E:EDatabaseError);
begin
  Case EIBError(E).IBErrorCode of
    isc_unique_key_violation: 
    begin
      MessageDlg(E.Message +
      'CLAVE DUPLICADA',mteRROR,[mbOk], 0);
    end
    else
    begin
      showmessage(inttostr(EIBError(E).IBErrorCode));
    end;
  end;
end;
isc_unique_key_violation es una constante con el codigo de error que te devuelve el servidor correspondiente a la clve duplicada. Si quieres controlar otros codigos de error, en IbErrorCodes.pas tienes el (creo recordar..).
No olvides añadir a las uses : Ib,IbErrorCodes.

Saludos


La franja horaria es GMT +2. Ahora son las 18:41:06.

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