ADO trabalha com índices?

06/12/2005

Estou transferindo um sistema de BDE para ADO e PARADOX para ACCESS. Transportou alguns índices, mas quando tento trabalhar com posicionamento através de um índice, não funciona. Por exemplo o método FINDKEY, tentei substituí-lo pelo SEEK, mas dá uma mensagem de que o provedor não está apto para trabalhar com índices.

Lembrando que findkey não faz o mesmo que setrange. Sou leiga no assunto, mas pelo que entendi o findkey somente posiciona, não faz filtro, enquanto que setrange faz um filtro. Se eu estiver equivocada me corrijam.

Por favor, alguém sabe qual o comando que substitui no FINDKEY para ADO?

É muito Urgente!!!!


Obrigada.


Sarnhold

Respostas

06/12/2005

Sarnhold

Se possível gostaria de fazer com instruções SQL, mas por enquanto utilizo banco de dados Access.

Por tanto se alguém souber passar um exemplo de como posso fazer FINDKEY, FINDNEAREST E LOCATE via sql, eu agradeço, pois futuramente iremos migrar para banco de dados SQL.

Obrigada.

Abraço.


Responder Citar

06/03/2006

Adalberto

Sim. O ADO trabalha com índices. No Visual Basic isto é indicado no momento de abrir a tabela, passando no parâmetro Options a constante [b:7a258ecc7e]adCMDTableDirect[/b:7a258ecc7e], ou será gerado um erro dizendo que o Provedor não suporta índices. No Delphi existe uma propriedade em ADOTable chamada [b:7a258ecc7e]TableDirect[/b:7a258ecc7e] (valores True / False), mas não testei para verificar se é a mesma propriedade. É quase certeza que sim...

Boa sorte...


Responder Citar

06/03/2006

Adalberto

Sim. O ADO trabalha com índices. No Visual Basic isto é indicado no momento de abrir a tabela, passando no parâmetro Options a constante [b:7c3b141ba7]adCMDTableDirect[/b:7c3b141ba7], ou será gerado um erro dizendo que o Provedor não suporta índices. No Delphi existe uma propriedade em ADOTable chamada [b:7c3b141ba7]TableDirect[/b:7c3b141ba7] (valores True / False), mas não testei para verificar se é a mesma propriedade. É quase certeza que sim...

Boa sorte...


Responder Citar

06/03/2006

Aroldo Zanela

Colega,

Os componentes para ADO não possuem método FindKey, mas você pode substituir pelo método Locate. (Veja a sintaxe no help) Entretanto, a performance do Access em pesquisas é inferior ao Paradox, bem como, o ideal é você utilizar consultas SQL restritivas para otimizar a performance de suas consultas neste contexto.


Responder Citar

06/03/2006

Paullsoftware

complementando o que o amigo Aroldo falou, no access vc possui as consultas que são como SP,Triggers do Interbase e vc pode usál-as para simplificar seus códigos e melhorar o desempenho de suas aplicações...


Responder Citar