FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Consultas parametrizadas
Hola a todos, buen día
El caso es que quiero hacer una pregunta que no sé si encaja en este foro o no. Habitualmente, cuando trabajo con BBDD, suelo presentar un form con los campos a filtrar, que se puede resumir así: Select de personas -> TQuery Origen de los datos edit de nombre edit de apellido edit de sexo, edit de altura Al pulsar seleccionar, monto la query con los filtros de los campos que se hayan seleccionado y presento el resultado en un grid. Hasta aqui todo como siempre. Pero... ¿ Puedo hacer que la consulta siempre se escriba con los parámetros select de personas where nombre=Nombre and apellido=Apellido and ... altura=Altura y que en ejecución aquellos parámetros que sean vacíos se obvien? ¿ Como puedo generar en ejecución los edits de los parámetros y luego montar la consulta ? Mi objetivo es preparar un objeto o similar que me sirva para cualquier consulta. El problema es más de diseño, creo, pero puede valer para cualquier consulta futura que se escriba o para cualquier programa. Gracias por vuestra ayuda, y por haber llegado leyendo hasta este punto, que no es poco . Un saludo PD: No quiero dejar esta oportunidad para haceros partícipes de que esta página vale su peso en oro, y que es de lo mejor que he encontrado por la red.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#2
|
||||
|
||||
puedes poner:
Código:
WHERE (IDUSUARIO = :IDUSUARIO OR :IDUSUARIO IS NULL)...
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Está bien pero ...
¿ pero que el parámetro sea nulo no quiere decir que ese campo tiene que ser nulo ? Lo que quiero decir - no sé si lo he explicado bien - es que si el usuario no introduce nada en el edit de un parámetro, este parámetro se obvie o no se filtre por él. Espero la respuesta. Espero haberme expresado bien. Gracias.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#4
|
||||
|
||||
Ok... si el usuario no ingresó nada en el Edit, debes asignarle null al valor del parámetro, entonces no filtrará por el campo en cuestión.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
|||
|
|||
no te entiendo
¿No te sirve esto? if trim(edit1.text) <> '' then sumo el edit1 a la consulta else pues no le sumo el edit a la consulta Saludos
__________________
La victoria tiene cien padres. La derrota es huérfana (Napoleón). |
#6
|
||||
|
||||
Lo probaré, gracias por la respuesta y por la celeridad.
Ahora me pregunto ¿ Habré estado haciendo el panoli todos estos años ? Pensaba que si ponia null al parámetro era para que filtrara por valor NULL de ese campo en cuestión !!! La juerga !. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#7
|
||||
|
||||
La clave de esto es el OR digamos que queda así:
SI PARAMETRO = NULL O NULL = NULL La primera condición no es válida pero si la segunda!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
|
|
|