12/08/2004

Pesquisa em SQL

Olá pessoal.. estou com uma dúvida..

Gostaria de fazer um pequeno campo de pesquisa em uma tabela.. eu ja botei alguns LkUps e Combos pra facilitar.. eu botei tb um Edit, q quando o usuario for digitando o nome, ele ja vai listando.. tipo, o usuario digita T, e no grid lista todos registro com T.. se ele digitar Tr, vai aparecer todos com Tr e assim por diante...

Mas a duvida é mais na seguinte parte.. pra fazer ele nao diferenciar maiusculas de minusculas, kero fazer os registros do DB ficarem em minusculas e os dados digitados tb.. como faço isso? é Lowercase mesmo? mas como uso? tipo lowercase(DmDados.Tabela) e lowercase(editpesquisa.text)??

E nessa questao tb.. se tiver um ´é´ e o usuario digitar ´e´, o programa acha??

Estou usando bd em Firebird 1.5, dbExpress, Delphi 7 e os tipos Win1252 e collate PT_ alguma coisa, nao lembro o nome, mas fikei li q é o mais recomendo pro portugues...



Allan Elias Ramos :wink:


Aersoftware

Respostas

12/08/2004

Minuto

Ja tentou assim:

Query1.Locate(´campo onde ira porcurar´,´Texto a buscar´,[loPartialKey,loCaseInsensitive]);


Responder Citar

12/08/2004

Aersoftware

Ja tentou assim: Query1.Locate(´campo onde ira porcurar´,´Texto a buscar´,[loPartialKey,loCaseInsensitive]);


Ficaria mais ou menos assim?

DmDados.Client.Locate(´Nome´,´EdtPesquisa.text,[loPartialKey, loCaseInsensitive]);

??




Allan Elias Ramos :wink:


Responder Citar

12/08/2004

Minuto

[quote:cbde7e4311=´MiNuTo´]Ja tentou assim: Query1.Locate(´campo onde ira porcurar´,´Texto a buscar´,[loPartialKey,loCaseInsensitive]);


Ficaria mais ou menos assim?

DmDados.Client.Locate(´Nome´,´EdtPesquisa.text,[loPartialKey, loCaseInsensitive]);

??

[/quote:cbde7e4311]

Dmdados =DAtamodule
Client = Tquery
Nome = campo da tabela do BD(field)
EdtPesquisa.text = Tedit

se tudo acima estiver correto . Sim!

ObS:

tem um ´ no seu codigo eu tirei :

DmDados.Client.Locate(´Nome´,EdtPesquisa.text,[loPartialKey, loCaseInsensitive]);


Responder Citar

13/08/2004

Aersoftware

Olá, tentei colocar esse comando e nao funcionou.. deu erro no loPartialKey e loCaseInsensitive..

Coloquei o código abaixo e funcionou:

DmDados.ClientPersonagens.Close; With DmDados.SqlPersonagens do begin Close; CommandText := ´Select * From TbPersonagens Where Codinome =´+ QuotedStr(EdtPesquisa.Text) +´Order By Codinome´; Open; end; DmDados.ClientPersonagens.Open;


Mas esse código só funciona se eu digitar o texto exato.. tipo, se eu tiver ´Allan´, e digitar ´allan´, ele nao acha... queria poder fazer ele nao diferenciar maisculas de minusculas.. e nao diferenciar acentos tb... há, e tb gostaria de fazer com q ele me mostrasse os resultados quando eu for digitando.. tipo, se eu digito ´a´, ele ja me lista todos nomes com ´a´.. se eu digitar ´al´. ele me lista todos com ´al´ e assim até acabar a palavra.. como faço? :roll:



Allan Elias Ramos :roll:


Responder Citar