Page 1 of 1

Como usar meter c/ Set Filter

Posted: Mon Oct 17, 2005 1:53 am
by Databaselab2002
Estimados Colegas

Alguien tiene algun prg de ejemplo de
meter con set filter, ya que la
dbf es bastante grande .

desde ya muchisimas gracias
Fabian
Databaselab2002@yahoo.com.ar

Re: Como usar meter c/ Set Filter

Posted: Mon Oct 17, 2005 4:25 pm
by R.F.
Databaselab2002 wrote:Estimados Colegas

Alguien tiene algun prg de ejemplo de
meter con set filter, ya que la
dbf es bastante grande .

desde ya muchisimas gracias
Fabian
Databaselab2002@yahoo.com.ar
No es posible utilizarlo, veras, el set filter, va evaluando los registros conforme va avanzando sobre ellos, en realidad, la base de datos nunca estan realmente "filtrada"

Es decir, no haces un SET FILTER y purrum, la base de datos se hace mas corta, no no no, las cosas no suceden asi con SET FILTER

Por ejemplo, si tu pones una base de datos "filtrada" en un browse, cada registro es evaluado al momento de pintarse para ver si se dibuja o no se dibuja de acuerdo al criterio del filtro.... por eso son estupidamente lentos, porque si 500 registros no entran en el pintado del browse, internamete se realiza una operaicon de SKIP() 500 veces antes de llegar al registro que se debe pintar en la linea del browse correspondiente..... esto empeora si luego quieres moverte sobre la base de datos con las flechas, o con pgup o pgdn, porque claro, para pintar el registro marcado se tienen que evaluar otra vez todos los criterios de filtro para cada registro.

Lo mismo ocurre si haces un filtro y luego un DO WHILE NOT EOF, cada operacion de SKIP evalua el criterio del filtro para ver si el registro donde esta el puntero entra o no dentro de los registros filtrados., sin embargo esta operacion es mucho mas rapida porque no tiene salida a pantalla.

En cambio, si tu tienes un indice que utiliza la clausula FOR para filtrar, la operacion de hace instantaneamente.

Tambien si utilizas los AOFs de Advantage Database Server, no hay necesidad de hacer un indice para filtrar, los filtros optimizados Advantage te dan exactamente una copia de la base de datos debidamente filtrada