Pesquisa em SQL

Delphi

05/07/2004

ola pessoal tudo bem?
tenho q fazer pequisaa em um banco de dados... as buscas sao um poko complexas... estou fazendo busca por nome ou
endereço ,e para tal , tenho q ter as seguintes opçoes:
buscar no inicio do campo,
buscar em qualquer parte do campo,
buscar no final do campo (q no caso seria um sobre nome por exemplo);

eu só consegui fazer no inicio do campo,as outras opçoes eu nao consegui fazer, para buscar no inicio eu fiz da seguinte forma:


//*****************************************************************************************

procedure TFormLocaliza.BitBtn1Click(Sender: TObject);


begin //inicio do procedimento

//pesquisa no inicio do campo

Query1.Close;
Query1.SQL.Text:=
´Select * From Banco1 Where Nome Like ´´+EditNome.Text+´¬´´;
Query1.Open;

if Query1.RecordCount=0 then
Begin
ShowMessage(´Nenhum registro encontrado!´);
end;

end;

//*****************************************************************************************

alguem tem ideia de como seriam as outras implementaçoes???

eu ate consegui fazer a q busca no final ,porem o pau q ta dando é o seguinte:
vamos supor q eu tenha no banco de dados o nome Paulo Silva Fernandes.
a procura pelo inicio é tranquila , digito Paulo e acha numa boa!mas a q busca pelo final c eu mandar procurar Fernandes ele nao acha!!!
ele só acharia c o nome estivesse assim por exemplo Paulo SilvaFernandes ... acho q a busca por qualquer parte do campo tbm daria
este problema!como resolver isso?
tem tbm o problema de os nomes estarem com a primeira letra maiuscula..e alguns com acentos... alguem sabe como fazer a
pesquisa ignorar maiusculas , minusculas e acentos?


tendo em vista o fato de o banco ser um pouco grande , a pesquisa demora cerca de 3 a 40 segs + ou - pra retornar os valores, sendo assim
eu gostaria de colocar uma progress bar para informar ao usuario o progresso da pesquisa quando ele executar , mas nao estou conseguindo fazer isso...
implementei o seguinte codigo , porem sem sucesso:

//*****************************************************************************************

procedure TFormLocaliza.BitBtn1Click(Sender: TObject);


begin //inicio do procedimento

var
barra_progresso: integer;

//pesquisa no inicio do campo

Query1.Close;
Query1.SQL.Text:=
´Select * From Banco1 Where Nome Like ´´+EditNome.Text+´¬´´;
Query1.Open;


Bar1.Min := 0; // valor minimo da barra d progresso
Bar1.Max := Query1.RecordCount; //valor maximo da barra de progresso é o numero d registros
if Query1.Eof = true then
begin
exit;
end;
Query1.Last;
Query1.first;
while barra_progresso <> Query1.Recordcount do
begin
bar1.Position := barra_progresso;
barra:=barra_progresso+1;
end;

if Query1.RecordCount=0 then
Begin
ShowMessage(´Nenhum registro encontrado!´);
end;

end;


//*****************************************************************************************

o q sera q esta errado ai ???


desculpem tantas duvidas , mas ja quebrei a cabeça e nao saiu nada... só pedindo ajuda mesmo pra resolver...rs
abraço a todos
e obrigado pela atençao !!!


Pedrohventura

Pedrohventura

Curtidas 0

Respostas

Pedrohventura

Pedrohventura

05/07/2004

alguem????


GOSTEI 0
Rômulo Barros

Rômulo Barros

05/07/2004

procedure TFormLocaliza.BitBtn1Click(Sender: TObject);


begin //inicio do procedimento

[color=red:d8f31e04be]//pesquisa para meio, início e fim do campo[/color:d8f31e04be]

Query1.Close; 
Query1.SQL.Text:= 
´Select * From Banco1 Where Upper(Nome) Like ´ +
         QuotedStr(´¬´+UpperCase(editNome.Text)+´¬´) ;
Query1.Open; 

if Query1.RecordCount=0 then 
Begin 
ShowMessage(´Nenhum registro encontrado!´); 
end; 

end; 



GOSTEI 0
POSTAR