Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-07-2004
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
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?
Responder Con Cita
  #2  
Antiguo 19-07-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Carlex
...no todos iran desde delphi...
Los que no quieres pasar, asegúrate asignarle Null al Value.
Cita:
Empezado por Carlex
Cual es el error?
¿Da un error?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 19-07-2004
JoseQ JoseQ is offline
Miembro
 
Registrado: jul 2004
Posts: 167
Poder: 20
JoseQ Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 19-07-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
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 :.
Responder Con Cita
  #5  
Antiguo 11-08-2004
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
Lightbulb

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
Responder Con Cita
  #6  
Antiguo 11-08-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Si quieres mantener los parámetros, podrías hacer:
Código SQL [-]
SELECT 1 FROM TABLA
WHERE (ID = ID OR ID IS NULL)
AND (NOMBRE = NOMBRE OR NOMBRE IS NULL)
....

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 13-08-2004
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
Smile

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
Responder Con Cita
  #8  
Antiguo 13-08-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:38:49.


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
Copyright 1996-2007 Club Delphi