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)
-   -   Problema al aplicar un filtro con ADO (https://www.clubdelphi.com/foros/showthread.php?t=39882)

giorgio 01-02-2007 11:24:46

Problema al aplicar un filtro con ADO
 
Hola amigos, vereis he hecho una aplicacion para hacer listados sobre una tabla access, el acceso es con componentes ADO, y realizo varios filtros sobre ella, pero el problema me viene solo en uno de ellos,
la tabla contiene 35000 registros mas o menos en total, y resulta que al aplicar dicho filtro se bloquea el programa, este filtro solo tiene dos valores o filtrar por true o filtrar por false, al hacerlo por false no hay problema al igual que los demas filtros, que tampoco dan problema, solamente se bloquea la aplicacion al filtrar por true en ese campo, he observado que quiza sea por la cantidad de registros que tiene y la transaccion en ese caso que tiene que tiene que hacer, porque por los demas filtros se ve que no tiene ke mover tantos registros pero con ese debe ser que son demasiados por que he probado a dejar la tabla con menos registros(unos 15000) y he comprobado
que tambien se bloquea y tiempo pero al final se desbloquea y consigue mostrarlos, por lo que deduzco que tiene que ser eso.

Y ahora va la pregunta, quiere decir esto que no voy a poder filtrar esta tabla por la cantidad de registros que tiene? Si alguien sabe otra manera de hacerlo o alguna opcion que evite este problema, os agradeceria mucho que echarais una mano.
Bueno ahi queda todo, a ver si hay suerte y al guien sabe como podria arreglarlo.
ah, y, utilizo delphi 5. un saludo.

giorgio 01-02-2007 11:48:21

aqui os pongo el codigo del filtro que hago
 
Aqui os pongo el codigo del filtro que hago para que os hagais una idea

Código Delphi [-]
var
Campo, Valor, Operador: string;
begin
Campo := 'Pasa';
Valor := QuotedStr(combobox2.text);
Operador := '=';
Table1.Filter:=format('[%s] %s %s', [Campo,Operador, Valor]);
Table1.filtered:=true;
Table1.Refresh;
end;

Saludos

www.giorgiosoft.es

josefns 21-02-2007 23:11:11

tabla con el filtro atascado
 
Hola Giorgio

Soy un recien ingresado al foro.
Veo que descubriste el problema, si no me equivoco la forma de trabajar del filtro es mostrar en la grilla registros que cumplan tu condición, condicion que evalua sobre cada registro...
Yo te recomendaria usar un componnente sql de la paleta ADO y pon tu condición el la consulta (select <campos> from <tablas> where <condicion>) que es la condicion del filtro, de esta forma trabaja el motor de la base de datos que accedes y solo devuelve los registros necesarios.

Otra cosa el refresh que haces a la ttabla deberias sacarlo, creo que esta de mas, no he probado.

saludos

giorgio 22-02-2007 15:24:27

Gracias
 
Si esa solucion es por la que he optado, aunque preferia no hacerlo, ya que
tenia que cambiar despues los datasource para hacer el listado pero bueno
como no habia otra pues me puse a cambiarlos y luego los vuelvo a cambiar para los demas filtros y solucionado.

Muchas gracias por todo y un saludo, ;)

Aqui estare para el que le haga falta un cable, jeje




www.giorgiosoft.es


La franja horaria es GMT +2. Ahora son las 13:24:20.

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