PDA

Ver la Versión Completa : No repetir datos en una columna


edusus
23-04-2006, 12:30:10
Hola amigos,
¿Podríais decirme como puedo hacer para que cuando por ejemplo en la columna (nombres de una BD) no se introduzca el dato si ya existe el mismo nombre en otro campo de la misma columna?
Gracias por adelantado.

Lepe
23-04-2006, 12:51:26
En teoría, antes de guardar (hacer el post), usas TTable.Lookup para buscar ese texto en toda la tabla.


var
ExisteTarifas: Variant;
begin
ExisteTarifas := tblTarifas.Lookup('FidCliente', TblClientesIdCliente.AsString,
'FidCliente');
if not (vartype(ExisteTarifas) in [varnull]) then
//si existen tarifas preguntar borrado


En la práctica es una lata, ya que pueden poner una letra de más o de menos, y entonces la búsqueda no sirve de nada.

Algo que no se recomienda, podría ser un "Autocompleta (http://www.clubdelphi.com/foros/showthread.php?t=16385&highlight=autocompleta)" en el nombre, así, conforme va escribiendo el usuario, ya sabe los que existen y pone cuidado en no repertirlo.

Osorio
23-04-2006, 18:07:57
Otra alternativa es crearle un indice unico al campo en mencion. asi al insertar otro igual, se dispara una excepcion.

Aunque como dice lepe, queda abierta la posibilidad de que agueguen o cambien una letra.

Depende tambien con que grado de restriccion quieres que no se repitan los datos.

Saludos...

edusus
23-04-2006, 18:24:51
En el programa donde tengo el problema me pasa lo siguiente.
Cuando yo abro una ficha de un paciente, su nombre y otros datos se añaden creando un registro en una base de datos pero en la ejecución del programa hay momentos en que tengo que volver a abrir la ficha del paciente cuyos datos ya están en la base de datos pero me crea un nuevo registro repetido, por eso quiero la forma de lograr que cuando ya esté el nombre de ese paciente no me vuelva a crear un registro nuevo.
Gracias por ayudarme.