Ver la Versión Completa : como capturar error de registro duplicado
ajmr81
13-10-2006, 22:22:59
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:
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:
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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.