FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Parametros en consulta SQL
Buenas a todos los foreros, mi problema es el siguiente:
Tengo una tabla llamada clientes en una base de datos. Bien, de esta tabla me gustaría hacer una consulta que me devolviera una serie de datos. Mi tabla tiene unos campos llamados Musica1, Musica2, etc... y Bebida1, Bebida2, etc... En un formulario tengo unos checkbox que marco y desmarco para pasarle los parametros a la consulta y un botón que es el encargado de ejecutar la consulta y un report que muestre los resultados de la consulta. La consulta que yo hago es la siguiente para que os vayais orientando: SELECT SEXO, NOMBRE, APELLIDO1, APELLIDO2, FECHANAC, EDAD, DIRECCION, PROVINCIA, TELEFONO, EMAIL, DEDICAS, MUSICA1, MUSICA2, MUSICA3, MUSICA4, MUSICA5, MUSICA6, MUSICA7, BEBIDA1, BEBIDA2, BEBIDA3, BEBIDA4, BEBIDA5, BEBIDA6, BEBIDA7, BEBIDA8, INFORMADO FROM CLIENTES WHERE (SEXO="HOMBRE") AND (BEBIDA1=:RON) AND (BEBIDA2=:WHISKY) AND (BEBIDA3=:GINEBRA) AND (MUSICA1=:POPESPANOL) AND (MUSICA3=:POP8090) AND (MUSICA4=:POPINTERNACIONAL) AND (MUSICA5=:SALSA); y los if con los checkbox del formulario son así: if CheckBox1.Checked then DataModule3.QueHombres.Parameters[0].Value := 'Ron' else DataModule3.QueHombres.Parameters[0].Value := 0; El caso es que en mysql poner un valor cero es como tener un valor vacio y mysql no le da importancia a ese valor o no lo interpreta, de tal manera que si yo pongo SELECT SEXO, NOMBRE, APELLIDO1, APELLIDO2, FECHANAC, EDAD, DIRECCION, PROVINCIA, TELEFONO, EMAIL, DEDICAS, MUSICA1, MUSICA2, MUSICA3, MUSICA4, MUSICA5, MUSICA6, MUSICA7, BEBIDA1, BEBIDA2, BEBIDA3, BEBIDA4, BEBIDA5, BEBIDA6, BEBIDA7, BEBIDA8, INFORMADO FROM CLIENTES WHERE (SEXO="HOMBRE") AND (BEBIDA1="RON") AND (BEBIDA2=0) AND (BEBIDA3=0) AND (MUSICA1=0) AND (MUSICA3=0) AND (MUSICA4=0) AND (MUSICA5=0); desde phpmydamin me devuelve todos los hombres de que beben ron pero desde delphi no me devuelve nada. Alguien sabe el caracter vacío en delphi o si hay que ponerle alguna propiedad a los parametros para que me saque la misma consulta que desde el phpmyadmin???? |
#2
|
||||
|
||||
Hola
Asi el campo esta vacio: Pero sigo sin saber que es lo que preguntas? Que tiene que ver con los parametros?. Saludos |
#3
|
|||
|
|||
Edito mi respuesta [Caral], sigo con el mismo problema. Nose si me equivocaré en la consulta que creo que va a ser eso, haber.
Yo tengo un cliente que bebe ron y whisky y otro que solamente bebe ron ok? Si yo quiero consultar el que bebe ron y whisky me devuelve un registro, hasta ahi correcto, pero si consulto el que bebe ron, me devuelve un cliente también cuando me debería de devolver 2, por eso decía antes lo del caracter 0, que desde phpmyadmin hago la consulta y me devuelve los 2 pero desde delphi no me devuelve los 2, me entiendes ahora?? Ejemplo: Consulta desde phpmyadmin en sql: SELECT * FROM CLIENTES WHERE SEXO = "HOMBRE" AND BEBIDA1 = "RON" AND BEBIDA2 =0 Devuelve 2 registros mientras que la misma consulta desde delphi devuelve 1, ahí está mi problema :S Un saludo y gracias :$ Última edición por csja fecha: 23-03-2008 a las 22:16:50. |
#4
|
||||
|
||||
Lo correcto es lo que hace Delphi, puesto que tu consulta le está pidiendo clientes que beben "Ron" y "Whisky", no los que beben una de las dos cosas en ese caso tendrías que utilizar Or en vez de And.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
Le acabo de cambiar todos los AND por OR y aunque no le pase ningún parametro a la consulta siempre me devuelve todos los registros que sean Hombres que hay en la tabla :S Me puedes echar una mano con la consultita?? :$:$
Gracias! |
#6
|
||||
|
||||
Hola
Tabla1 Cliente: CodigoCliente NombreCliente Etc. Tabla2 Consumo CodigoCliente Bebida Musica Haces una referencia de las dos tablas. En la de clientes solo tienes los clientes. En la de consumo tienes los datos de consumo por codigo de cliente. cliente 1 bebidas ron wisky brandi musica rok blues merenge salsa Con solo hacer una referencia al codigo del cliente te dara todos los datos, asi te evitaras repetir tantas veces bebida y musica, recuerda, tal vez el cliente le antojen mas tipo de musica o bebida. Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
consulta con parametros fecha | didier | MySQL | 2 | 02-08-2006 15:58:25 |
Parametros integer en consulta php | jgutti | PHP | 2 | 14-06-2006 21:16:20 |
Parametros en Consulta SQL | joi | Varios | 2 | 31-10-2005 19:36:49 |
Consulta en SQL con muchos parámetros | Aprendiendo | SQL | 5 | 05-04-2005 22:30:13 |
consulta con parametros en blanco | merlin | SQL | 2 | 02-12-2003 16:13:20 |
|