Ola!
Agora, como fazer isso no DBF? Estamos implementando o LETODB(fork) no sistema e está funcionando legal, mas queremos diminuir o tráfego de dados. Atualmente ao abrir uma tabela usamos o componente Browser do HMG para mostrar os dados, mas o mesmo lista TODOS os registros, como posso limitar essa consulta?
Não tem como. Porque não precisa, só vem o que vc chama. (Via Leto[f] ou NetIO).
O comando "USE" abrirá, e irá trazer alguns registros! isto é, somente o que cabe nas linhas do browse, por exemplo.
Não precisa se preocupar com LIMITE.
Quando abre um DBF qualquer com "milhões" de registro, o ponteiro fica por padrão no primeiro. Não chama nenhum só se posiciona, Se no browse cabe 50 ele puxa apenas os cinquenta registros, mesmo que tenha milhões. Não cria uma MALHA com a sentença... dos fields(campos) da tabela, como em SQL com 100 e só mostra 50.
Vc trata diretamente com a base de dados, não existe uma camada intermediaria virtual.
No LetoDbf tem a opção "Cache_Records = 60", isto é o servidor LetoDBf armazena em memória 60 registros de vez, para não ficar lendo o tempo todo o disco registro a registro.
Se não quer mostrar todos os registros em DBF usamos a cláusula(flag) "FOR" ou "WHILE", mas tem que ter um propósito
index on quantidade TAG XYZ for QUANTIDADE >= 100 // é só um exemplo.
Resumindo, o filtro vc faz na criação de algum Ãndice e abre ele, ou pode usar o comando "FILTER TO" não recomendado o uso em redes.
Essa situação de ler todo o DBF, sobrecarga na rede, só ocorre com redes mapeadas. Ai está a má reputação do DBF.
Saudações,
Itamar M. Lins Jr.