Arquivos DBF
Estou tendo que criar relatórios no RAVE utilizando arquivos DBF pois o sistema que irá utilizar estes relatórios é antigo e ainda utiliza arquivos DBF para o banco de dados, porem ao fazer as pesquisas SQL, preciso constantemente de fazer INNER JOINs e OUTER JOINs(LEFT e RIGHT), porem isso acareta uma demora no processamento, demora esta q esta passando do limite aceito. Como meu conhecimento em Delphi nao esta muito aprofundado, venho a vcs pedir ideias q possam acelerar estas pesquisas, seja através de componentes q levem a tabela p a memória ou sei la o q mais seja possivel!!
Valeu galera....
Valeu galera....
Thiagodede
Curtidas 0
Respostas
Ffc
08/12/2005
Olá thiagodede,
Eu sou programador Clipper e Delphi e já tive o mesmo problema, já tentei de tudo mais não tive sucesso, então resolvi criar uma tabela Paradox mesmo para ser uma temporária, toda vez que preciso pego todos os dados da DBF e jogo nesta temporária através do [b:6b10d2e182]BatchMove[/b:6b10d2e182] que fica na paleta [b:6b10d2e182]BDE[/b:6b10d2e182] ai sim posso fazer consultas mais ágeis via Instruções SQL.
Boa sorte!!!
Eu sou programador Clipper e Delphi e já tive o mesmo problema, já tentei de tudo mais não tive sucesso, então resolvi criar uma tabela Paradox mesmo para ser uma temporária, toda vez que preciso pego todos os dados da DBF e jogo nesta temporária através do [b:6b10d2e182]BatchMove[/b:6b10d2e182] que fica na paleta [b:6b10d2e182]BDE[/b:6b10d2e182] ai sim posso fazer consultas mais ágeis via Instruções SQL.
Boa sorte!!!
GOSTEI 0
Thiagodede
08/12/2005
Valeu grande... vou tentar essa opção.
Vou tb ver se utilizando componentes ADO a performace da uma melhorada!!
Vou tb ver se utilizando componentes ADO a performace da uma melhorada!!
GOSTEI 0
Vitor Rubio
08/12/2005
Eu só programei em clipper há 8 anos, no inicio do meu curso técnico, e há 7 anos programo em delphi, por isso não tenho muita bagagem com clipper.
Mas fiquei curioso: Se vocês usarem umas consultas mais ´filtradas´, ao invés de select *, usarem um buffer pequeno e usarem clientdataset com um packet record grande não ficaria rápido?
Quando você faz um select em tabelas dbf já é criada automaticamente uma tabela temporária num arquivo no diretorio do programa. Tabela essa que não é deletada caso o programa dê pau ou a bde trave.
Em último caso, há outras maneiras de se acessar a dbf´s sem usar a bde.
Mas fiquei curioso: Se vocês usarem umas consultas mais ´filtradas´, ao invés de select *, usarem um buffer pequeno e usarem clientdataset com um packet record grande não ficaria rápido?
Quando você faz um select em tabelas dbf já é criada automaticamente uma tabela temporária num arquivo no diretorio do programa. Tabela essa que não é deletada caso o programa dê pau ou a bde trave.
Em último caso, há outras maneiras de se acessar a dbf´s sem usar a bde.
GOSTEI 0