Ver Mensaje Individual
  #1  
Antiguo 10-10-2008
rochi rochi is offline
Miembro
 
Registrado: nov 2004
Ubicación: mvd, uruguay
Posts: 57
Reputación: 20
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