Foros del Web » Programación para mayores de 30 ;) » Programación General »

pregunta sobre delphi

Estas en el tema de pregunta sobre delphi en el foro de Programación General en Foros del Web. hola tengo un problema, como puedo restringir el campo DNI osea el documento nacional de indetidad (para la argentina) que es unico por persona. osea ...
  #1 (permalink)  
Antiguo 06/12/2003, 20:23
 
Fecha de Ingreso: enero-2002
Mensajes: 63
Antigüedad: 22 años, 3 meses
Puntos: 0
pregunta sobre delphi

hola tengo un problema, como puedo restringir el campo DNI osea el documento nacional de indetidad (para la argentina) que es unico por persona. osea que quiero algun codigo o compenente que se fije en la base de datos y me diga que ya existe y que no se puede volver a ingresar. este proceso lo hago en el alta de un cliente, osea que ya esta abierta la base de datos al ingresar el DNI. El tema es que no encuentro la manera de restringir la forma de que no me ingrese un mismo DNI.
  #2 (permalink)  
Antiguo 07/12/2003, 12:25
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Necesitas hacer que el campo DNI de tu base de datos sea el campo llave (keyfield) eso impedira que te metan registros con ese campo duplicado.

Si estas usando tablas tipo paradox en el database desktop modifica la tabla para agregarselo
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 07/12/2003, 14:25
 
Fecha de Ingreso: enero-2002
Mensajes: 63
Antigüedad: 22 años, 3 meses
Puntos: 0
la base de datos esta echa en interbase

al estar echa en interbase, la tabla clientes contiene un cod_cliente, que lo definimos como primario y no nulo, es autoincremental por medio de un generador...el campo DNI, tiene las propiedades de numerio no nulo. lo que que queremos es que sea unico ese campo (DNI).
  #4 (permalink)  
Antiguo 07/12/2003, 18:21
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
En ese caso creo que eligieron mal su clave, debio haber sido DNI la llave primaria, y no un autoincremental (que se suele reservar para cuando no hay llaves candidatas).

Si no es asi la unica alternativa que tendras es para cada insercion/modificacion hacer una consulta en busca del DNI que pretendes insertat/modificar, si no existe (query.RecordCount = 0) entonces si permitir el movimiento, si no, negarlo.

Aunque esta solucion puede tener sus implicaciones si piensas manejar concurrencia sobre la tabla, o sea una aplicacion multiusuario (que si usas paradox lo ideal seria que no).
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:33.