Ver Mensaje Individual
  #14  
Antiguo 20-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
¡¡Cómo se nota que ya es jueves!! ¿¿tenemos ganas de cháchara ehhhh??

Al menos se ha explicado varios puntos siempre importantes en el diseño, como ves tienes varias alternativas.

Lo normal es poner un índice único sobre el campo dni, en cuanto se intente repetir el mismo dni, se mostrará una excepción y no dejará insertarlo.

Si hay posibilidad de repetirse (como han comentado abajo), no pongas el índice y búscalo manualmente. Lanza una consulta TADOQUERY antes de guardar:
Código Delphi [-]
adoquery1.sql.text := ' select dni from cliente where dni = :eldni';
adoquery1.parameters.parameterbyname('eldni').value = edit1.text;
adoquery1.Open;
if not adoquery1.IsEmpty then
begin
 ShowMessage('el dni ya existe');
 sysutils.Abort;
end;

También puedes usar adotable1.lookUp(....); pero no recuerdo la sintaxis , consulta la ayuda.

No te aconsejo usar el Locate si usas DBEdits y DBxxxx porque en caso de que se encuentre repetido, provocará un cambio de registro y normalmente eso vuelve a intentar guardar el registro por lo que obtienes un bucle infinito.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita