Filtrar duas palavras separadas no mesmo campo com o edit?
Olah pessoal
Tenho no dbgrid dados gravados assim:
[campo=noCNAE]
cultivo de milho
cultivo de trigo
cultivo de soja
...
...
Estou querendo digitar duas palavras separadas no mesmo campo em um edit e filtrar, mais nao estou obtendo resultado
Fiz um SQL assim:
O objetivo deste filtro com este fileds eh escrever no edit assim
[b:83f33b1611]culti sojal[/b:83f33b1611] fazer o filtro sobre essas duas palavras que estao no mesmo campo do fields.
Estou usando firebird 2.0
Grato Adriano
Tenho no dbgrid dados gravados assim:
[campo=noCNAE]
cultivo de milho
cultivo de trigo
cultivo de soja
...
...
Estou querendo digitar duas palavras separadas no mesmo campo em um edit e filtrar, mais nao estou obtendo resultado
Fiz um SQL assim:
if radiobutton3.checked = true then begin if edit1.text = ´´ then exit; texto := edit1.text; sql := ´SELECT * FROM TB8cnae WHERE UPPER(noCnae) LIKE ´+´ ´´ ´; while pos(´ ´,texto) > 0 do begin sql := sql + (copy(texto,1,pos(´ ´,texto)-1)+´¬´); Delete(texto,1,pos(´ ´,texto)); end; sql := sql+texto+´¬´´´; sql := UpperCase(sql); query1.Close; query1.SQL.Clear; query1.SQL.Add(sql); query1.Open; end;
O objetivo deste filtro com este fileds eh escrever no edit assim
[b:83f33b1611]culti sojal[/b:83f33b1611] fazer o filtro sobre essas duas palavras que estao no mesmo campo do fields.
Estou usando firebird 2.0
Grato Adriano
Adriano_servitec
Curtidas 0
Respostas
Edvilson.chaves
10/04/2007
Dá uma olhada nisso!!!!
[b:ddfaedf8b5]function RetornaPalavraSel(const pFrase: String; const pPosicao: Integer): String;
var
lNomes: array[1..20] of string;
Nome: String;
i, TotalNomes: Integer;
begin
Nome := pFrase + #32;
i := Pos(32, Nome);
if i > 0 then
begin
TotalNomes := 0;
while i > 0 do
begin
Inc(TotalNomes);
lNomes[TotalNomes] := Copy(Nome, 1, i - 1);
Delete(Nome, 1, i);
i := Pos(32, Nome);
end;
if pPosicao <= TotalNomes then
Result := lNomes[pPosicao]
else
Result := cStringBranco;
end
else
Result := cStringBranco;
end;[/b:ddfaedf8b5]
[b:ddfaedf8b5]function RetornaPalavraSel(const pFrase: String; const pPosicao: Integer): String;
var
lNomes: array[1..20] of string;
Nome: String;
i, TotalNomes: Integer;
begin
Nome := pFrase + #32;
i := Pos(32, Nome);
if i > 0 then
begin
TotalNomes := 0;
while i > 0 do
begin
Inc(TotalNomes);
lNomes[TotalNomes] := Copy(Nome, 1, i - 1);
Delete(Nome, 1, i);
i := Pos(32, Nome);
end;
if pPosicao <= TotalNomes then
Result := lNomes[pPosicao]
else
Result := cStringBranco;
end
else
Result := cStringBranco;
end;[/b:ddfaedf8b5]
GOSTEI 0
Adriano_servitec
10/04/2007
Dá uma olhada nisso!!!!
[b:13448e6717]function RetornaPalavraSel(const pFrase: String; const pPosicao: Integer): String;
var
lNomes: array[1..20] of string;
Nome: String;
i, TotalNomes: Integer;
begin
Nome := pFrase + #32;
i := Pos(32, Nome);
if i > 0 then
begin
TotalNomes := 0;
while i > 0 do
begin
Inc(TotalNomes);
lNomes[TotalNomes] := Copy(Nome, 1, i - 1);
Delete(Nome, 1, i);
i := Pos(32, Nome);
end;
if pPosicao <= TotalNomes then
Result := lNomes[pPosicao]
else
Result := cStringBranco;
end
else
Result := cStringBranco;
end;[/b:13448e6717]
Olah amigo, vc sabe como faço para chamar essa funçao? Gostaria de fazer um teste com um edit e mostrar no grid.Obrigado pela atençao
Adriano.
GOSTEI 0
Adriano_servitec
10/04/2007
sobe
GOSTEI 0
Adriano_servitec
10/04/2007
sobe
GOSTEI 0