Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-11-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Solo añadir que si puede haber dos personas con el mismo dni (busca "dnis duplicados" en google para mas información)
Responder Con Cita
  #2  
Antiguo 20-11-2008
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
Cita:
Empezado por seoane Ver Mensaje
Solo añadir que si puede haber dos personas con el mismo dni (busca "dnis duplicados" en google para mas información)
Mas razon aun para no poner el dni como clave primaria.

Saludos.
Responder Con Cita
  #3  
Antiguo 20-11-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
Mmmmm yo solo decia ...... en mi pais no se hace eso jeje y pense que en otros tampoco se hacia pero buehhh cada dia se aprende algo nuevo
__________________
Las cosas o son, o no son...
Responder Con Cita
  #4  
Antiguo 20-11-2008
Avatar de bigpeter80
bigpeter80 bigpeter80 is offline
Miembro
 
Registrado: nov 2008
Posts: 11
Poder: 0
bigpeter80 Va por buen camino
Bueno, veo que muchos han respondido a mi solicitud y les agradezco mucho la atención.. Como me preguntaba Lepe tengo una base de datos hecha en access 2003, y utilizo una conexión ODBC hecha con el ADOConection.
Responder Con Cita
  #5  
Antiguo 20-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
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
  #6  
Antiguo 20-11-2008
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
Yo hago mas o menos lo que ha comentado Lepe, es comprobar si existe el dni y si es asi pregunto si se quiere o no duplicar el dni.

Saludos.
Responder Con Cita
  #7  
Antiguo 21-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por cahp Ver Mensaje
...me explico...
Con lo que poner el DNI como clave primaria, no lo aconsejo.
Sí te explicas, pero lo del DNI era un ejemplo (por que es un campo que todos conocemos). Lo importante era la idea.
Cuando bigpeter80 decía esto:

Cita:
Empezado por bigpeter80 Ver Mensaje
...pero cuando creo un cliente nuevo, uno que ya habia ingresado antes me permite guardar igual...
Es porque de alguna forma, puede identificar clientes duplicados. Sea por DNI, o por DNI y nombre o por DNI y fecha de nacimiento o por lo que sea.
Por lo tanto en lugar de buscar si esos criterios ya existen lo lógico es colocar un índice único.

Cita:
Empezado por bigpeter80 Ver Mensaje
Como me preguntaba Lepe tengo una base de datos hecha en access 2003, y utilizo una conexión ODBC hecha con el ADOConection.
Te recomiendo que te saltes el paso de ODBC conectes mediante ADO a Access utilizando Jet4 que es el motor propio de Access y te dará más eficiencia/rendimiento que ODBC.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
Guardar datos en Base de Datos MySQL knnibal Conexión con bases de datos 6 23-06-2011 15:36:42
sugerencia para evitar clientes duplicados Patricio Varios 2 06-11-2008 18:54:00
Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas adaypr C++ Builder 1 05-09-2006 11:56:33
Borrar datos duplicados Sr.Scorpion Conexión con bases de datos 4 20-06-2005 19:52:57
Evitar duplicados hectorin Conexión con bases de datos 2 29-10-2004 16:37:25


La franja horaria es GMT +2. Ahora son las 07:40:15.


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