Consulta Desde->Hasta
Saludos.
Pongo esta imagen para que os hagáis una idea de lo que quiero hacer. Al pulsar el botón "Buscar" lanzo la siguiente consulta:
La consulta funciona bien, siempre y cuando rellene todos los "Edits". Lo que quiero conseguir, es qué si se deja por ejemplo en blanco los Edits Desde Nº de entrada y Hasta Nº de entrada, o cualquier otro. En la consulta, me salga todos los datos de los Edits que no he rellenado. La base de datos es Firebird 2.0.4 Si Tenéis cualquier idea o sugerencia al respecto, os lo agradecería. Un saludo. |
¿Y no puedes comprobar antes de ejecutar la consulta si los han rellenado o no?
En la consulta utiliza una variable _Desde, por ejemplo y haces la comprobación:
No se si me expliqué bien; Igual para el campo Hasta. |
Hola, si he entendido bien, ¿por qué no usas consultas anidadas if...Then?
Saludos. Edito: Neftalí ya contestó :D |
No se si el lo mismo que dice Enecumene, pero ¿porque no lo evaluas en tu aplicacion, para armar la sentencia correcta?
Saludos |
Gracias por responder.
Este es un "Filtro sencillo", pero tengo que desarrollar algunos con muchos edits como estos. Si son todos "Desde->Hasta", más o menos los puedo resolver como dice Neftali, pero el problema me surge cuando por por ejemplo hay uno o varios edits que solo comparan un resultado. Por ejemplo: Si no relleno el número de factura, la consulta no devuelve nada. Este es sencillo y se puede resolver bien, pero tengo que hacer algunos filtros que pueden tener varios edits como estos, y aquí es donde me encuentro que no se como resolverlo sin tener que prepara muchos If Then Muchas gracias por vuestra ayuda. Un saludo. |
Saludos.
Una idea podría ser, pones tu sentencia SELECT dentro del Editor de SQL en tu componente Query así:
Ahí tienes todos tus parámetros, luego en Delphi:
Luego a medida que tienes valores se lo pasas y los que no se queda nulos y el COALESCE se encarga de dejarlo en blanco. A recomendación trata de no tener ningún componente desendiente de TDataSet en la presentación (formularios) trata de ponerlos en un DataModule. |
Hola RolphyReyes.
Gracias por responder. Probaré tú código a ver que tal me va. Cita:
Siempre suelo ponerlo en un DataModule, esto ha sido una pequeña excepción.:D Nuevamente gracias por tu aporte. Un saludo. |
La franja horaria es GMT +2. Ahora son las 10:14:11. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi