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)
-   -   uso de filtros. (https://www.clubdelphi.com/foros/showthread.php?t=16071)

inexperto 13-11-2004 23:16:06

uso de filtros.
 
hola a todos ...tengo el siguiente problema con los filtros:

miTabla.Filter := QuotedStr(ComboBox1.Text) + '=' + QuotedStr(Edit1.Text+'*');

la verdad delas cosas no se como puedo hacer un filtro con estas caracteristicas...alguien que me pueda ayudar......estaria muy agradecido..
chau:D

roman 13-11-2004 23:44:11

Cita:

Empezado por inexperto
no se como puedo hacer un filtro con estas caracteristicas

¿Con cuáles características?

Como no pones qué filtro quieres hacer o que filtrado quieres lograr es difícil saber qué pasa.

De cualquier forma me parece que el uso del primer QuotedStr sobra ya que te dará un filtro del estilo:

'campo' = 'valor*'

y los nombres de campos no deben ir entrecomillados.

// Saludos

marcoszorrilla 14-11-2004 10:40:24

Tienes que hacer lo que te ha dicho Román, aquí te pongo el mismo ejemplo con ShowMessage - para que veas como queda armado el filtro.

Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 Table1.Filter:=Combobox1.Text + ' = '+QuotedStr(Edit1.Text+'*');
 ShowMessage(Table1.Filter);
 Table1.Filtered:=True;
 end;
Un Saludo.

inexperto 16-11-2004 03:24:49

filtros y componentes zeos???
 
hola Marcos ¡¡¡¡

La solucion que me diste es bastante buena pero solo para tablas dbf (talvez otras mas), porque yo estoy utilizando componentes zeos en especial ZQuery y no me funciona.

este el pequeño codigo que utilizo para el filtro:

procedure TFichaCategoria.Edit1Change(Sender: TObject);
begin
if length(edit1.Text) <> 0 then
begin
DM.ZQuery1.Filter := ComboBox1.Text + ' = ' + QuotedStr Edit1.Text+'*');
Showmessage(DM.ZQuery1.Filter);
DM.ZQuery1.Filtered := true;
end
else
begin
DM.ZQuery1.Filtered := false;
end;
end;

la verdad no se que puede ser, sera que los componentes zeos no soportan lo que hago, o necesito cambiar algunas propiedades al componente Zquery para que funcione, o el codigo esta malo, no lo creo porque lo coloco en una query asoaciado a una tabla dbf y lo realiza muy bien.

espero que me des una ayudadita ¡¡¡¡
chau.

roman 16-11-2004 03:43:26

Intenta cambiando

Código Delphi [-]
ComboBox1.Text + ' = ' + QuotedStr(Edit1.Text+'*');

por


Código Delphi [-]
ComboBox1.Text + ' like ' + QuotedStr(Edit1.Text+'*');

Lo acabo de probar en Zeos y, en efecto, funciona con like pero no con =. Para mi gusto esto es un error de diseño de Zeos ya que va contra el uso común de un filtro.

// Saludos

inexperto 16-11-2004 14:54:08

Gracias ¡¡¡¡¡ funciona perfecto aunque sea un defecto de los componentes zeos

chau.

marcoszorrilla 16-11-2004 15:11:37

Para finalizar, creo que es muchos mas logico utilizar Like, puesto que es una aproximacion y no una igualdad.

Un Saludo.

roman 16-11-2004 15:58:27

Cita:

Empezado por marcoszorrilla
Para finalizar, creo que es muchos mas logico utilizar Like, puesto que es una aproximacion y no una igualdad.

Estoy de acuerdo en que el operador like es más lógico- y acorde a la sintaxis de SQL -mas sin embargo es contrario a lo que uno, bien o mal, espera de un filtro. La descripcion de la propiedad Filter en la ayuda de Delphi viene desde el nivel de TDataSet y se ajusta a = en lugar de like.

Aunque algunos descendientes, como TIBDataSet si no me equivoco, específicamente señalan el uso de like, muy desafortunadamente el proyecto Zeos no ha dado para un buen sistema de ayuda y de ahí estas tristes confusiones que- como inexperto puede corroborar ;) -nos hacen perder un tiempo valioso. :(

// Saludos

Dragon 23-01-2005 09:48:54

Hola a todos:

Tengo una pregunta,¿todo esto que han explicado servira para tablas de access,
si fuera pocible indiquenme como hacerlo?:(


La franja horaria es GMT +2. Ahora son las 17:55:16.

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