Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   problemas al querer filtrar con ADO (https://www.clubdelphi.com/foros/showthread.php?t=12150)

mgaray 07-07-2004 20:01:43

problemas al querer filtrar con ADO
 
Hola:
Mi problema se genera coando quiero utilizar la propiedad filter de una ADOQuery, le pongo la siguientes lineas:
dm.qryctginv.Filtered := true;
dm.qryctginv.Filter := 'mi_descri = ' + QuotedStr(txtopc.Text + '%');
y el resultado es que me deja vacio el DBgrid donde muestro los datos y nunca filtra. Anteriormente habia utilizado el BDE y no me causo ningun problema, ahora no se cual pueda ser la falla.
De antemano gracias por su ayuda.

marcoszorrilla 07-07-2004 21:52:33

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Adoquery1.filter:='Titulo Like '+QuotedStr(Edit1.Text+'*');
Adoquery1.Filtered:=True;
end;

Un Saludo.

mgaray 07-07-2004 22:40:01

Me manda un error
 
Cita:

Empezado por marcoszorrilla
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Adoquery1.filter:='Titulo Like '+QuotedStr(Edit1.Text+'*');
Adoquery1.Filtered:=True;
end;

Un Saludo.

Antes que nada gracias por la contestación, tal vez te parezca muy simple mi duda pero al adaptar tus lineas en mi codigo delphi levanta una excepcion Eoleexception, que dice que los argumentos no son validos o argumentos fuera de rango, perdona de nuevo la molestia, no se si sea cuestion de configurar el Adoquery tal vez alguna propiedad que me este haciendo falta, en fin, ojala y quieras guiarme de nuevo.
Gracias

mgaray 07-07-2004 23:07:41

Envia un mensaje de error
 
:( Antes que nada gracias por la contestación, tal vez te parezca muy simple mi duda pero al adaptar tus lineas en mi codigo delphi levanta una excepcion Eoleexception, que dice que los argumentos no son validos o argumentos fuera de rango, perdona de nuevo la molestia, no se si sea cuestion de configurar el Adoquery tal vez alguna propiedad que me este haciendo falta, en fin, ojala y quieras guiarme de nuevo.
Gracias

^TxTeZ^ 08-07-2004 13:43:08

Bueno, creo que el problema de que no te filtrara nada es por que segun lo que tu has hecho:

dm.qryctginv.Filtered := true;
dm.qryctginv.Filter := 'mi_descri = ' + QuotedStr(txtopc.Text + '%');


estas poniendo la propiedad Filtered a true antes de aplicar el filtro.

La secuencia de codigo seria:

ADOQuery1.Filtered := False;
ADOQuery1.Filter := 'Mensaje LIKE ' + QuotedStr(Edit1.Text + '%');
ADOQuery1.Filtered := True;


A mi asi me ha funcionado

mgaray 08-07-2004 17:27:42

gracias por su consejos
 
Hola:
Les agradezco su ayuda, parte del problema es que cuando le pasaba el argumento al filter la caja de texto no contenia texto esto lo genera cuando utilizo el evento onkeypress, pero una vez que se arregle este problema funciono de maravilla quedando como sigue:
dm.qryctginv.Filtered := false;
dm.qryctginv.Filter := 'mi_descri like ' + QuotedStr(txtopc.Text + '%');
dm.qryctginv.Filtered := true;
la solucion ya ustedes me la habian dado solo que hay que tener precaución en eso de la cadena vacia sobre todo cuando uno utiliza como yo en este caso una caja de texto para pasar la cadena a filtrar.

Muchas gracias por todo.

marcoszorrilla 08-07-2004 17:43:24

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin

  if Length(edit1.text)> 0 then
  begin
  Adoquery1.filter:='Titulo Like '+QuotedStr(Edit1.Text+'*');
  Adoquery1.Filtered:=True;
  end
  else
  ShowMessage('Cadena vacía inténtelo de nuevo');

end;

Un Saludo.



La franja horaria es GMT +2. Ahora son las 10:57:53.

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