Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-10-2006
ajmr81 ajmr81 is offline
Registrado
 
Registrado: ago 2006
Posts: 9
Poder: 0
ajmr81 Va por buen camino
Question 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.
Responder Con Cita
  #2  
Antiguo 13-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Ya probaste el evento OnPostError del dataset que estés usando?

// Saludos
Responder Con Cita
  #3  
Antiguo 13-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
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...
Responder Con Cita
  #4  
Antiguo 17-10-2006
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 288
Poder: 21
kalimero Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como capturar un error de base de datos carlos gonzalez Varios 2 20-06-2005 21:07:11
campo unico duplicado seken Conexión con bases de datos 4 15-04-2005 21:28:45
Capturar error bbjb OOP 3 12-04-2005 19:19:46
Registro Duplicado En Query jmedina SQL 2 29-11-2004 22:11:47
Registro Duplicado jmedina Conexión con bases de datos 0 17-11-2004 19:53:34


La franja horaria es GMT +2. Ahora son las 21:43:52.


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
Copyright 1996-2007 Club Delphi