Fórum Pesquisa em SQL #241647
05/07/2004
0
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 !!!
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
Curtir tópico
+ 0
Responder
Posts
06/07/2004
Pedrohventura
alguem????
Responder
Gostei + 0
06/07/2004
Rômulo Barros
procedure TFormLocaliza.BitBtn1Click(Sender: TObject);
begin //inicio do procedimento
[color=red:d8f31e04be]//pesquisa para meio, início e fim do campo[/color:d8f31e04be]
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;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)