Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-10-2008
rochi rochi is offline
Miembro
 
Registrado: Nov 2004
Ubicación: mvd, uruguay
Posts: 57
Poder: 14
rochi Va por buen camino
ClientDataSets con parámetros, no funciona la consulta

Hola, necesito filtrar los datos desde el server para no traer todos. El usuario selecciona por cual campo buscar (esos serán los de los parámetros).

Trabajo con Delphi 7 + Fb 2.0 + IBX + ClientDatasets.
Una IBQuery con parámetros, "Nombre" y "DNI" y su sentencia SQL es la encargada de recoger los datos.

Tengo 2 campos por los que filtrar, uno u otro, excluyentes, cuando busco por DNI, al parámetro lo seteo con un valor inexistente de DNI, así solo traerá lo que encuentre por Nombre.

Código:
 //Aqui quiero que solo busque por nombre, pongo un DNI inexistente
 //como parámetro:
 procedure TfwndABMPac.RadioButton2Click(Sender: TObject);
 begin
   inherited; 
   dmClientes.cdsClientes.Params.ParamByName('DNI').AsString := '####'; 
   dmClientes.cdsClientes.Params.ParamByName('Nombre').AsString :=
 (UpperCase(edBusq.Text))+'%';
 end;
La sentencia SQL del ibQryClientes, es asignada en tiempo de diseño:
Código:
 select * from Clientes where (Upper(Nombre) Containing :Nombre) or
(Upper(DNI) Containing :DNI)
En el evento OnChange que se ejecuta posteriormente está lo siguiente:
Código:
 dmClientes.cdsClientes.Close;
dmClientes.cdsClientes.FetchParams;
dmClientes.cdsClientes.Open;
Si está o no el FetchParams da igual no veo cambios. ¿Qué tiene de malo mi consulta SQL?, también probé seteando los parámetros del ibqry en lugar de los del CDS, pero tampoco funcionó.

Intenté sobreescribiendo con la consulta usando el CommandText del CDS y tampoco anduvo.

Es todo, salutes! gracias por cualquier sugerencia.
ro
Responder Con Cita
  #2  
Antiguo 10-10-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: May 2003
Ubicación: Campeche, México
Posts: 2.727
Poder: 18
maeyanes Va por buen camino
Hola...

Podrías poner la consulta SQL?


Saludos...
Responder Con Cita
  #3  
Antiguo 10-10-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: May 2003
Posts: 5.504
Poder: 23
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola!

Me parece que el problema está en el símbolo de porcentaje que agregas al nombre a buscar. Éste se utiliza con Like, pero para Containing no representa un carácter especial, así que el servidor está buscando aquellos nombres que contengan la cadena completa dada, incluyendo el símbolo de porcentaje. Y como los nombres suelen carecer de símbolos especiales, es normal que no arroje resultados (si es que a eso te refieres con «no veo cambios»).

Por otro lado, puedes ahorrarte el "Upper" ya que al parecer Containing no discrimina entre mayúsculas y minúsculas.

Un abrazo al 100%.

Al González.
__________________
Twitter
Código
Blog
WhatsApp para consultas rápidas y asesorías profesionales: +52 1 2711260117
Responder Con Cita
  #4  
Antiguo 10-10-2008
rochi rochi is offline
Miembro
 
Registrado: Nov 2004
Ubicación: mvd, uruguay
Posts: 57
Poder: 14
rochi Va por buen camino
Exacto era eso, me di cuenta después, saqué el '%' y el Upper, ya que Containing es case insensitive.
Estuve buscando algo de información respecto a qué optimiza mejor las consultas si el uso del Like, Containg, etc. pero no encuentro nada relacionado con Firebird al respecto.
Si alguien sabe de algun enlace se los agradezco.

La consulta SQL es:
Código:
select * from Clientes where ((Nombre Containing :Nombre) or (DNI Containing :DNI))
La dejo por si es optimizable, saludos y gracias al 100:%
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ClientDataSets- Personalizar errores rochi Conexión con bases de datos 0 03-05-2008 06:47:52
Esta consulta no me funciona brandolin Firebird e Interbase 1 12-02-2007 17:29:08
Clientdatasets anidados con ADO Johnny Q Conexión con bases de datos 4 03-11-2005 02:53:25
Update en Varios ClientDataSets. (Sincronización) Listirrinin Varios 0 19-10-2004 10:49:02
Consulta Interbase con CGI No Funciona ASAPLTDA Internet 2 26-06-2003 23:15:42


La franja horaria es GMT +2. Ahora son las 18:44:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi