Array
(
)

Pesquisa em SQL

Aersoftware
   - 12 ago 2004

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:


Minuto
   - 12 ago 2004

Ja tentou assim:

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


Aersoftware
   - 12 ago 2004


Citação:
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:


Minuto
   - 12 ago 2004


Citação:

Citação:
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]);

??



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]);


Aersoftware
   - 13 ago 2004

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

Coloquei o código abaixo e funcionou:


Citação:
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: