Opção para o quot;Locatequot;

Delphi

18/02/2004

Olá pessoal!

Possuo um banco de dados cujo número de registros já está ficando um pouco grande para que eu possa utilizar o ´Locate´ (do controles ADO) para localizar um determinado registro.

Gostaria de saber se existe alguma opção, e como usar, para buscar um registro de forma mais rápida que o ´Locate´.

Grato.
wbb


Wbb

Wbb

Curtidas 0

Respostas

Delmar

Delmar

18/02/2004

||Possuo um banco de dados cujo número de registros já está ficando um ||pouco grande para que eu possa utilizar o ´Locate´ (do controles ADO) ||para localizar um determinado registro.

Como vc mesmo diz, se seu número de registros já está ficando grande para utilizar o locate, o ideal é utilizar SQL e trazer um conjunto resumido de registros, ou se tiver um bom critério de pesquisa, utilizá-lo para trazer apenas o registro desejado.

Um abraço.


GOSTEI 0
Wbb

Wbb

18/02/2004

Bem que eu gostaria que fosse tão fácil assim.... Ahh se fosse fácil....

Uso Locate porque não tenho informações suficientes para ´um bom critério de pesquisa´. Só possuo uma informação de um campo do registro e é essa que utilizo no Locate.

wbb


GOSTEI 0
Andremuller

Andremuller

18/02/2004

E não dá pra usar esse critério de pesquisa na SQL e então utilizar o primeiro registro? Dá no mesmo do que o locate.


GOSTEI 0
Rodolpho123

Rodolpho123

18/02/2004

Olá amigo.
Qual é o banco que vc usa? Se vc busca um bom desempenho, aconselho à vc mudar de banco. Uma boa opção que encontrei foi o FireBird. Eu tinha um BD Access, usando também componentes ADO, cujo os registros beiravam a casa dos 1.000.000. Para carregar 65.000 registros, levava cerca de 16 segundos com o Access. Com FB, isso caiu para menos de 1 segundo. Continuo usando o Locate pois o acho um método muito bom.
Espero tê-lo ajudado.
Abraços...............!


GOSTEI 0
Andremuller

Andremuller

18/02/2004

Bom já que tu perguntou: minhas aplicações rodam em SQLServer, Oracle e Interbase ao mesmo tempo com total compatibilidae, carregando as configurações de cada banco por um arquivo .ini, dependendo de qual banco o cliente usa.
E eu uso DbExpress.


GOSTEI 0
Delmar

Delmar

18/02/2004

Olá amigo. Qual é o banco que vc usa? Se vc busca um bom desempenho, aconselho à vc mudar de banco. Uma boa opção que encontrei foi o FireBird. Eu tinha um BD Access, usando também componentes ADO, cujo os registros beiravam a casa dos 1.000.000. Para carregar 65.000 registros, levava cerca de 16 segundos com o Access. Com FB, isso caiu para menos de 1 segundo. Continuo usando o Locate pois o acho um método muito bom. Espero tê-lo ajudado. Abraços...............!


Tmb acho ótimo o locate e rápido. Mas pode acontecer a seguinte situação. De um conjunto de um milhão, carrega-se 65.000 registros e utiliza-se locate neste conjunto para encontrar uma informação. Mas, a informação procurada com locate está entre os 950 mil registros restantes que ficarm no BD. Será necessário uma nova consulta Sql com critério que abranja o registro desejado e talvez, se o conjunto ainda retornar grande, utilizar novamente o locate.
Então, as vezes, é melhor empregar mais tempo e elaborar buscas só com Sql melhorando a performance, preparando o aplicativo para rodar em rede e evitar ainda de usuários ´leigos´ ligarem dizendo: ´o registro não está na grade. Cadastrei ontem´.


GOSTEI 0
Rodolpho123

Rodolpho123

18/02/2004

Olá amigo Delmar!
Concordo plenamente com sua opnião. Foi algo que me passou por despercebido.
Abraços..........!


GOSTEI 0
Max_steel

Max_steel

18/02/2004

Ola pessoal, tb estou com um problema parecido uso AdoDataSet com
AdoConection no meu banco SQL Server 2000, mais nao consigo fazer pesquisas utilizando indices, somente com o locate, soh q meu locate ta muito devagar, ai qdo tento utlizar seek ele da q meu provedor nao suporta, to conectado com o ado como Microsoft OLE DB Provider For Sql Server, como devo proceder para q eu consiga fazer pesquisas usando indices? ou alguma outra sugestao, nao posso fazer pesquisas usando filtro sql pq tenho q mostrar a tabela inteira.

Grato

Mandrake


GOSTEI 0
POSTAR