Pesquisa com SQL

Delphi

28/04/2003

Boa tarde!

Pessoal, estou com grande dificuldade em fazer um certo tipo de pesquisa com SQL, por exemplo tenho o nome do livro ´Senhor dos Anéis´ e gostaria de fazer uma pesquisa por este título em meu banco, bem estou utilizando o Like ¬´String´¬(Claro, passando à parâmetros eu uma Query), até aí tudo bem pois se eu pesquiso por apenas ´Senhor´ ele me traz todos os títulos que contenham Senhor, e a mesma coisa com Anéis, o problema é se eu quiser pesquisar por exemplo ´Senhor Anéis´ ecluíndo o ´dos´ da consulta, ele não me retorna nada, a mesma coisa acontece se eu quizer inverter as palavras, por exemplo ´Anéis Senhor´, nada retorna. Creio eu que terei que fazer um like para cada palavra, mas como fazê-lo? Terei que gravar cada palavra em uma string e depois pesquizar? E se for isso, como fazer para que do Edit ele grave cada palavra em uma string e depois faça a busca? Pode ser que seja simples, mas meus poucos conhecimentos não me ajudam.

Valeu!

Angelo


Angelo

Angelo

Curtidas 0

Respostas

Prosystem

Prosystem

28/04/2003

[quote=´Angelo´]Boa tarde!

Pessoal, estou com grande dificuldade em fazer um certo tipo de pesquisa com SQL, por exemplo tenho o nome do livro ´Senhor dos Anéis´ e gostaria de fazer uma pesquisa por este título em meu banco, bem estou utilizando o Like ¬´String´¬(Claro, passando à parâmetros eu uma Query), até aí tudo bem pois se eu pesquiso por apenas ´Senhor´ ele me traz todos os títulos que contenham Senhor, e a mesma coisa com Anéis, o problema é se eu quiser pesquisar por exemplo ´Senhor Anéis´ ecluíndo o ´dos´ da consulta, ele não me retorna nada, a mesma coisa acontece se eu quizer inverter as palavras, por exemplo ´Anéis Senhor´, nada retorna. Creio eu que terei que fazer um like para cada palavra, mas como fazê-lo? Terei que gravar cada palavra em uma string e depois pesquizar? E se for isso, como fazer para que do Edit ele grave cada palavra em uma string e depois faça a busca? Pode ser que seja simples, mas meus poucos conhecimentos não me ajudam.

Valeu!

Angelo


Amigo o comando like pesquisa uma cadeia de caracters nao tendo como excluir no seu caso o ´do´ mas se voce tentar assim :

Exemplo : ´string´¬ ou ¬string

Veja se é o que vc precisa.


GOSTEI 0
Cefernan

Cefernan

28/04/2003

Olá Angelo,

este é um exemplo de como eu faço para procurar por palavras separadas. Por exemplo: ´Senhor Anéis´, a consulta retornará qualquer registro que contenha as duas palavras, não necessariamente consecutivas, podendo ter qualquer palavra ou palavras entre elas. Para o caso ´Anéis Senhor´ essa função não funciona.


procedure TF_ConContato.EditProcuraChange(Sender: TObject);
var Aux: string;
i: Integer;
begin
Aux := ´¬´;
for i := 1 to Length(EditProcura.Text) do
begin
if EditProcura.Text[i] = ´ ´ then
Aux := Aux + ´¬´
else
Aux := Aux + EditProcura.Text[i];
end;
Aux := Aux + ´¬´;
T_Pesquisa.Close;
T_Pesquisa.ParamByName(´Texto´).Value := Aux;
T_Pesquisa.Open;
end;


GOSTEI 0
POSTAR