![]() |
Campos unicos al introducir
Holas!
Quisiera saber como tengo que realizar el codigo para que no me permita introducir informacion duplicada, siendo estos campos NO llaves. Ejemlo tengo CI, NOmbres, Apellidos, MateriasProgramas, SiglaMateria, etc 1234567 Juan Perez Matematicas MAT-100 1001234 Juan Perez...../Que no me permita ya que nombres y apellidos se repiten. 1234567 Juan Perez Matematicas MAT-100//Que no me permita por que se repiten las Materias con la sigla 1234567 Maria Cruz....// No permita por que se repite el mismo CI almacenado antes en la Base de Datos. Por si caso estoy usando como gestor de BD SQL Server, y programo en Delphi. ///(quizas..) algun componente que pueda facilitarme? Gracias |
Hola sisne.
No sé que componente usas para ingresar los datos, si es con un TEdit esto podría ser una opción: Código:
procedure TForm1.Edit1Exit(Sender: TObject);para verificar su existencia. Código:
procedure TForm1.IBDSetNombreSetText(Sender: TField; const Text: String);Saludos. |
Hola ecfisa!
Gracias por el código, estoy usando DBEdit (con Base de datos SQL SERVER), voy a probar ok? Saludos. |
Hola de nuevo sisne.
Sin darme cuenta dí por sentado unas líneas que si faltan te podrían complicar; amplio el código: Código:
procedure TForm1.IBDSetNombreSetText(Sender: TField; const Text: String); |
Hola ecfisa, gracias por tu ayuda. Olvide mencionar que estoy usando Query o ADOQuery y pues...
Mi codigo es este: Código:
procedure TFmateria.NombreMExit(Sender: TObject);Código:
endPodrias aclararme por favor? Que tendria que colocar? El Codigo es perfecto para campos unicos, pero si quisiera que tres campos iguales no se introzcan en una Base de Datos? Ejemplo: Juan Perez Flores//valido Rosa Perez Cruz//Valido Juan Perez Flores // puede haber el caso de que de pronto este repitiendo los mismos datos con el mismo nombre y apellidos (no valido) Jose Perez Flores// esto es valido Gracias! |
Hola sisne.
No me he topado con ADO todavía, así que te pido disculpas si no puedo ayudarte todo lo que desearía. Te explico el porqué de esas líneas, para que las adaptes y quizá ni te hagan falta El Abort es una excepción silenciosa y no depende de la base de datos que estes usando, es sólo para cancelar el ingreso si el dato ya existe. En cuanto a la otra línea sólo es necesaria para restaurar el valor del parámetro Text del evento OnSetText. Pero como veo que estás usando la comprobación en el evento OnExit del DBEDit su uso, no tiene ningún sentido en tu caso. Saludos. |
Cita:
|
Holas! Gracias por la ayuda!
Respecto a el funcionamiento de los indices en la base de datos pues no tengo conocimiento. Gracias! |
Cita:
Pues deberías revisarlo ya que creo que te puede ser útil. Pudes definir un índice ÚNICO por uno o varios campos y la Base de Datos se encargará de que no introduzcas información duplicada segun el índice definido. Te evitarás tener que hacer nada más. |
| La franja horaria es GMT +2. Ahora son las 06:48:26. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi