![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
En casos como este yo he tenido que darle varias vueltas al asunto y no ha podido ser con null's... asi que lo que he hecho es crear valores "bandera" que me indican como actuar... algo como
Código:
where (:TodosLosClientes = 'S' or IdCliente = :IdCliente) and
(:TodosLosTipos = 'S' or idTipo = :idTipo)
Código:
q1.ParamByName('TodosLosClientes').AsString := IfThenElse(eCliente.Text = '', 'S', 'N');
q1.ParamByName('idCliente').AsInteger := IntToStr(eCliente.Text);
// esto en un try/except o alguna función que devuelva cualquier valor al elevarse la excepción...
q1.ParamByName('TodosLosTipos').AsString := IfThenElse(eTipo.Text = '', 'S', 'N');
q1.ParamByName('idTipos').AsString := eTipo.Text;
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate Última edición por jachguate fecha: 22-04-2004 a las 22:48:28. Razón: hacer mas pequeñas las líneas.. |
|
#2
|
|||
|
|||
|
Si, eso fué lo que se planteó en un principio, pero el hecho de enviar dobles parametrós no nos agradó lo suficiente y apareció esta SP que mencionó que evaluaba contra un OR.
Gracias de todas formas, ahora que tengo un poco de tiempo voy a investigar un poco más a ver que vuelta le encuentro.
__________________
Suerte .: Gydba :. Última edición por Gydba fecha: 17-04-2004 a las 15:41:16. |
|
#3
|
|||
|
|||
|
Bueno, recien estoy teniendo tiempo para realizar algunas pruebas. He llegado a esto:
Código:
SELECT
CLT.ID, CLT.NAME
FROM
CLT_MASTER CLT
WHERE
CLT.ID = Coalesce(:PARAM1, CLT.ID)
AND
CLT.NAME = Coalesce(:PARAM2, CLT.NAME)
Me surgió esta idea cuando alguien me comentó un problema de optimización de índices de algunos motores (como MSSQL) cuando tiene que realizar algo similar con el operador OR. Hasta el momento lo probé con integers, varchars y dates como quería y no me fallo. Tengo que aclarar que utilizo la ultima versión de FB, es decir la 1.5.
__________________
Suerte .: Gydba :. |
|
#4
|
||||
|
||||
|
Interesante... si ya no te dió problema con el tipo de dato, creo que es lo que estabamos esperando...
![]() Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
|
|
|