FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con varios Parametros
Hola de nuevo :
Aqui con un problemilla de parametros, resulta q tengo un query que es alimentado por parametros 5, pero no todos iran desde delphi como logro que omita los en blanco y ejecute con los que se le manda? el query es algo asi: SELECT P.N_CI, P.S_Nombre, P.S_ApPaterno, P.S_ApMaterno, P.F_FechaNac, P.S_Profesion, P.S_Domicilio, P.S_Telefono, P.S_OrigenPrest, D.S_DescEstDeuda, S.S_DescSector, P.N_Item, P.R_TotalGanado, P.N_Servicio FROM T_Prestatario P, T_EstDeuda D, T_Sector S WHERE P.N_Cod_EstDeuda = D.N_CodEstDeuda AND P.N_CodSector = S.N_CodSector AND (P.N_CI=:Param1 OR P.S_ApPaterno= :Param2 OR P.F_FechaNac= :Param3 OR P.S_Profesion= :Param4 OR P.S_OrigenPrest= :Param6 OR P.N_Item= :Param7) Cual es el error? |
#2
|
||||
|
||||
Cita:
Cita:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
ami me pasaba igual,la sentencia SQL no admitia los NULL, al final desisti, i como solo tenia k obtener un registro me decdante x Locate
|
#4
|
|||
|
|||
Buenas,
Alguna vez me tope con el uso de parámetros opcionales en Firebird, si te interesa lo resolví con un coalesce (la función puede llamarse diferente según el motor que utilices, pero vale como idea): http://www.clubdelphi.com/foros/showthread.php?t=9207 PD: Me quedó la duda de cuál era el error. Saludos
__________________
Suerte .: Gydba :. |
#5
|
|||
|
|||
En si no es un error sino que ocurre lo siguiente:
El usuario puede colocar su busqueda por apellido, profesion, carné, fecha de nac,etc y debera buscar solo los que cumplan las condiciones seleccionadas, y los demas parametros iran nulos. Esto es una busqueda con filtros, o bueno la idea es esa. Es decir si busco los con apellido perez, me busque solo esos. Si busco los que apellidan perez y tienen la profesion profesor, me busque profesores con apellido perez. Lo que obtengo como resultado con el query mencionado es 1ro los que apellidan perez y luego todos los que son profesores(y estos no apellidan perez). Probe con And y or y no me soluciona, no se si se entiende. Como siempre muchas gracias por su tiempo y su ayuda |
#6
|
||||
|
||||
Si quieres mantener los parámetros, podrías hacer:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#7
|
|||
|
|||
Desde ya muchas gracias por la respuesta, apezar de encontrar otra forma de hacerlo(mediante un armado del query con sql.add, con varios if para los diversos casos), pero prove tu consejo puse algo asi:
SELECT * FROM PRESTATARIOS WHERE (CI = :Param1 OR :Param1 IS NULL) AND (APELLIDO = :Param2 OR :Param2 IS NULL) al definir el tipo de parametros me encontre con que habia 2 param1 y 2 param2 es decir duplicados los parametros, que hice mal? Desde ya muchas gracias, tu ayuda es de GRAN ayuda para mi y para todos |
#8
|
||||
|
||||
El editor de propiedad te muestra dos parámetros, pero al modificar los valores de uno se cambian los dos, porque seguramente los referencia por el nombre, así que solo tendrías que asignar uno.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
|
|
|