Jump to content
Fivewin Brasil

"filtro" por expressao.


gibaf

Recommended Posts

ola a todos !!!

alguem tem uma solucao pra fazer "filtro" por expresao, de forma q a performance fique aceitavel em banco dbf com muitos registros ???

obrigado !!!

Gilberto Frohlich - Toledo/PR

giba_f@hotmail.com

giba_f@yahoo.com.br

xHarbour xBuild+Fivewin 2.7+PellesC+(Postgres+DB2)

Link to comment
Share on other sites

ola a todos !!!

alguem tem uma solucao pra fazer "filtro" por expresao, de forma q a performance fique aceitavel em banco dbf com muitos registros ???

obrigado !!!

Gilberto Frohlich - Toledo/PR

giba_f@hotmail.com

giba_f@yahoo.com.br

xHarbour xBuild+Fivewin 2.7+PellesC+(Postgres+DB2)

Link to comment
Share on other sites

Vagner

so uma perguntinha,, se usar isso ele vai jogar na memoria do computador ou vai criar um arquivo em disco,, pois uso esse tipo de filtro usando o ads do fivewin..,,, se esse for melhor vai salvar a minha pele em pesquisa por lei no dbf... pois eu faco assim:

*-----------------------------

Function PSLEM( nKey , oGet )

Local cFras, cChave

SELE LEI

LEI->(OrdSetFocus("LEIPESQ"))

cFras := AllTrim( oGet:cTitle )

cChave:= "'"+CFRAS+"' $upper(PESQ1+' '+PESQ2+' '+PESQ3+' '+PESQ4+' '+PESQ5+' '+PESQ6+' '+PESQ7)"

lei->(adssetaof(cchave))

IF EOF()

SET FILTER TO

lei->(ADSRefreshAOF())

BUCLEI()

ENDIF

verdLEI()

statusl = 1

olbx1:GoTop() ; olbx1:refresh()

return nil

luis

Link to comment
Share on other sites

Olá Luiz,

Não uso o ADS, me parece que no ADS, vc pode usar comandos sql, nesse caso eu passei para criar um arquivo temporário ou seja criar arquivo físico, e vc pode criar com o índice e dar uma append from tb, com certeza para o dbf (normal) fica muiiito mais rápido que um set filter da vida icon_smile_wink.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

valeu,, testei esse comando, mas parece do jeito que eu faco a pesquisa so filtra daquele jeito, se uso o seek ou esse copy?? ele nem se mexe do lugar e nao retorna nenhum filtro,, nao sei o que por que ocorre isso, mas com o ads, eu nao sei como usar os comando de sql,, se tem que trocar de driver etc,,, se algum puder me ajudar ficarei grato, pois eu uso para pesquisa em um arquivo de leis que possui os seguintes campos:

numero string

pesq1 a pesq7 tudo texto e data e sao esse campos que filtro no momento ainda estou dando conta do recado mas se os registros comecarem a cresce ai nao sei qual sera a velocidade do sistema na pesqisa, mas obrigado, por que aprendi mais uma...

luis

Link to comment
Share on other sites

hein Vagner ???

a sua dica, em tabelas com poucos registros tudo bem... mas qdo tem 30 mil, 50 mil ou 100 mil registros ???

como fica a performance ! q tem q ficar no piscar de olhos..rs

obrigado !!!!

Gilberto Frohlich - Toledo/PR

giba_f@hotmail.com

giba_f@yahoo.com.br

xHarbour xBuild+Fivewin 2.7+PellesC+(Postgres+DB2)

Link to comment
Share on other sites

citação:

hein Vagner ???

a sua dica, em tabelas com poucos registros tudo bem... mas qdo tem 30 mil, 50 mil ou 100 mil registros ???

como fica a performance ! q tem q ficar no piscar de olhos..rs

obrigado !!!!

Gilberto Frohlich - Toledo/PR

giba_f@hotmail.com

giba_f@yahoo.com.br

xHarbour xBuild+Fivewin 2.7+PellesC+(Postgres+DB2)


id=quote>id=quote>

Para ficar num piscar de olhos, o mais fácil é fazer com OrdScope hehehehe, estou só mostrando que assim desse jeito fica mais rápido do que o SetFilter icon_smile_big.gif, agora como disse eu não uso o ADS icon_smile_wink.gif

Luiz, qndo vc cria um arquivo temporário vc precisa depois de criar, trabalhar com ele, senão ele não irá retornar mesmo icon_smile_wink.gif

Vc poderia também criar um índice temporário ao invéz do DBF

+- assim :

Use Clientes ....

Inde On Nome To ClieAux For "GIBA" $ Nome

Use Clientes Inde ClieAux

...

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

eu ate uso o ads, mas nele nao to com o problema do filtro, q o AdsSetAof() faz rapidinho....

mas qdo eh configurado pro dbf, eh q eh o problema... tambem ja tentei o indice temporario... mas nesse caso eu tenho outro problema:

digamos q a minha tabela tem 3 indices:

1-codigo

2-nome

3-fone

qdo eu crio o indice temporario, ele vai criar um 4, mas eu preciso q o indices citados recebam o filtro, pq o cliente fica numa tela q pode mudar a ordem dos dados, pelos:

1-codigo

2-nome

3-fone

q sao padroes da app.

e o indice temporario, vai me criar um order 4 com o filtro, mas se o usuario resolver mudar a ordem pelo 1, ou 2 ou 3, melecou !!!!

tendeu ???

ajudas e dicas, continuam bem vindas, por favor !!!

obrigado !!!!

Gilberto Frohlich - Toledo/PR

giba_f@hotmail.com

giba_f@yahoo.com.br

xHarbour xBuild+Fivewin 2.7+PellesC+(Postgres+DB2)

Link to comment
Share on other sites

Ola Giba, tudo blz?

eu resolvi utilizar o indice temporario desta forma e está indo bem claro que ainda não tenho um base de dados de 50 mil, mas estou nos 25 mil e ficou bem rapido. a forma que encontrei:

// abre o banco com o alias de uso normal

use tabela1 alias Tab1 new

// abre o banco com o alias temporario

use tabela1 alias tmp1 new

index on codigo to codigo TEMPORARY

browse()

se quero trocar o indice faço assim

index on nome to nome TEMPORARY

gotop()

obrw:refresh()

depois dou um dbclosearea("tmp1") e tudo sumiu sem muito esquentar a cabeça, e vc pode usar da forma que precisar...

Alessandroid=blue>

FW20d+CL53b+Blk7+@Say+CDX

FW9.06+xHb121+PellesC+CDX

"O fracasso jamais me surpreenderá, se minha vontade de vencer for suficientemente forte..."id=red>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...