FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Buscar tres campos iguales
Holas...
El problemita que tengo es que debo buscar en toda la base de datos cuando tres campos introducidos sean iguales a los que anteriormente ya fueron introducidos, y si son iguales pues no tiene que guardar dicha informacion. Hice el sigte codigo, pero pues no me deja si un nombre o apellidos se parezcan a los de la Base de datos. Estoy usando SQL Server, pero prefiero programarlo en Delphi. Este codigo puse cuando ya introduci el primer, segundo y al tercer recien pongo este codigo de programacion: Donde: NomE=Nombre ApePE=Apellido Paterno ApeME=Apellido Materno Gracias |
#2
|
||||
|
||||
Hola
No entiendo lo que quieres hacer pero analicemos el codigo: 1- Empecemos, usemos el query1, empecemos, cerremos el query1 (hasta aqui todo bien).
2- seleccionemos todo de la tabla BDinscripcion domde el nombre sea como el text (primer intento)
3- Te arrepientes y ahora quieres que: seleccionemos todo de la tabla BDinscripcion domde el apellido paterno sea como el text (segundo intento)
4- Te vuelves a arrepentir y ahora quieres que: seleccionemos todo de la tabla BDinscripcion domde el apellido materno sea como el text y abres la tabla (tercer y ultimo intento), este es el dato que recibes despues de hacer todo lo demas.
5- Si encontró el dato y no esta vacío el APELLIDO MATERNO entonces envia el mensaje. Creo que te darás cuenta de lo que significa esto, verdad?. Saludos
__________________
Siempre Novato |
#3
|
||||
|
||||
Bueno, Caral, ya te lo ha explicado, esto está mal.
Código:
1 - SQL.Text:= 'SELECT * FROM BDinscripcion WHERE NomE = '+QuotedStr(NomE.Text); 2 - SQL.Text:= 'SELECT * FROM BDinscripcion WHERE ApePE = '+QuotedStr(ApePE.Text); 3 - SQL.Text:= 'SELECT * FROM BDinscripcion WHERE ApeME = '+QuotedStr(ApeME.Text); Tienes varias posibilidades, pero quizás la más cómoda puede ser añadir un campo a cada registro que sea la suma completa de los campos. Me explico, tienes: id, nombre, apellido1, apellido2, domicilio, telefono Pues añade a la tabla un campo que sea: nombrecompleto, entonces tu tabla sería algo así: id, nombre, apellido1, apellido2, domicilio, telefono, nombrecompleto Al dar de alta un registro debes rellenar ese campo uniendo "nombre'+'apellido1,+'apellido2', Puedes crear un índice único por ese campo, así lo tendrías controlado. |
#4
|
||||
|
||||
Holas!
Gracias por responder. El problema es que no se usar indices Lo que quiero que haga es, que cuando encuentre los tres campos iguales en otro registro pues que NO me permita guardarlos... Dos campos cualquiera de los tres pueden repetirse, pero no los tres al mismo tiempo.... POr favor..... |
#5
|
||||
|
||||
Hola
Si amigo, pero lo que intento es que analice el codigo, nada mas. Si entiende un poco mas esto entonces podra analizarlo mejor. Ya me conoces, me gusta explayar. Lo que necesita hacer es una consulta ligada, no necesita ni recorrer la tabla ya que tiene un where que limita el dato recibido. En tal caso si quiere el nombre completo es mejor concatenar. Saludos
__________________
Siempre Novato |
#6
|
||||
|
||||
Hola
Soy de la opinion de casimiro. Un Campo ID (UNICO) y listo Saludos
__________________
Siempre Novato |
#7
|
||||
|
||||
Hola Caral, tienes una manera de explicar muy bien, que se entiende todo los pasos claramente.
Colocar where y anidar con AND en programacion de delphi....no me ubico bien...podrias ayudarme aun...como seria? Por favor |
#8
|
||||
|
||||
Hola
Veamos la solucion optima: Creamos un campo ID (unico). Simplemente comparamos ese campo: Como veras si el ID no coincide envía el error. Me parece mas sencillo. Saludos
__________________
Siempre Novato |
#9
|
||||
|
||||
Hola
Ahora vamos a tratar de hacer lo mismo usando where y and (Como te gusta): Saludos
__________________
Siempre Novato |
#10
|
||||
|
||||
Hola Caral, definitivamente explicas muy bien y das ejemplos demasiado claros!
MUCHISISIMAS GRACIAS por tu ayuda. Exacto es lo que preciso.... Si introduzco nombres, apellidos paternos y maternos ; y si por si acaso en registros anteriores ya existen pues no se me acepten guardarlos. Pueden existir en la Base de Datos registros de hermanos, pero obviamente con diferentes nombres...me referia a ello. El and y varias comparaciones no sabia como hacerlas por eso coloqué varios where, en el anteriorrrr msj. Otra vez MuChAsSsSsSs GRACIAS! |
#11
|
||||
|
||||
Hola de nuevo Caral...
Cita:
|
#12
|
||||
|
||||
Hola
En el caso de que el ID no sea igual SI se podrían repetir los nombre etc. Osea, si alguien se equivoca SI se podrían duplicar los datos. El problema que veo con tu sistema es que: Igual que se pueden repetir los datos con un diferente ID se pueden repetir los datos al escribir MAL un nombre, apellido etc. Osea: Siempre cabe el error, pero es menos probable con un solo campo. Saludos
__________________
Siempre Novato |
#13
|
||||
|
||||
Hola nuevamente Caral.
Si tienes razon respecto a los IdE en mi caso. Ejectué el codigo que me sugeriste donde esta con Where y and. Solo que ahora me aparece error, con el sigte msj. Cita:
|
#14
|
||||
|
||||
Hola
El error lo dice todo (error de escritura). Esto puede suceder por multiples razones. 1- los campos no son los adecuados, osea en este caso string. 2- algun campo esta vacio. 3- la sentencia sql no es correcta. Volvamos: Si los campos son correctos entonces no se necesita QuotedStr. Si la sentencia esta incorrecta lo podemos averiguar facilmente con un mensaje, algo asi:
Si vemos la concatenacion de esta sentencia nos la mostrara asi: Ves el error???. No quiero decirlo, prefiero que lo encuentres, asi es como se aprende. Saludos
__________________
Siempre Novato Última edición por Caral fecha: 11-04-2010 a las 17:20:50. |
#15
|
||||
|
||||
Hola Caral.
Tienes razón encontré el errorcito Gracias eh! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta en dos campos iguales | elcigarra | MySQL | 2 | 28-11-2014 16:27:46 |
Unir el contenido de 2 campos iguales sin repetir | chinosoft | SQL | 2 | 09-04-2008 13:43:24 |
utilizanzo campos blob en tres capas | StartKill | Providers | 0 | 22-03-2007 00:27:55 |
buscar registros iguales en una tabla | didier | MS SQL Server | 1 | 23-09-2005 09:08:20 |
Buscar con campos lookup | elmurray | C++ Builder | 2 | 10-08-2005 11:06:26 |
|