Pesquisa com sql

Delphi

06/01/2005

Galera poderiam analisar este pequeno código que recebe o nome do favorecido (nome do cliente). Este código que escreve esta dando um erro, e não sei como resolver.

Código.

onde: cds_Predatado componente ClienteDataSet, dst_Predatado componente SqlDataSet.


begin
Dm.cds_Predatado.Close;
with Dm.dst_Predatado do
begin
Close;
Dm.dst_Predatado.CommandText := ´select * from Predatado where upper(favorecido) like upper(´´¬´´ + :1 + ´´¬´´)´;
Params[0].AsString := self.TxtLocalizar.Text;
Open;
if Dm.dst_Predatado.eof then
begin
Application.MessageBox(´Erro 1001 - Favorecido não encontrado !´,´Erro procura´, mb_ok + mb_IconWarning);
TxtLocalizar.Text := ´´;
end;
end;
Dm.cds_Predatado.Open;

O erro:

Expression evaluation not supported

Pelo que deu para entender, que a expressão do sql não eh reconhecida, então como fazer a consulta para burcar qualquer frase no nome do campo (favorecido), pois esta expressão do sql, usando no Piradox, dá certo.

O objetivo deste código, eh pegar qualquer palavra e pesquisa no bd Predatado.

Estou usando componentes do DbExpress com Firebird.

Grato a todos que puderem me ajudar

Objetiva Creator


Objetivacreator

Objetivacreator

Curtidas 0

Respostas

Massuda

Massuda

06/01/2005

Não testei, mas experimente mudar seu SELECT para
select * from Predatado where upper(favorecido) like upper(":1")
e mudar a forma de passar o parâmetro para...
Params[0].AsString := ´¬´ + self.TxtLocalizar.Text + ´¬´;



GOSTEI 0
Emerson Nascimento

Emerson Nascimento

06/01/2005

você provavelmente tem um DatasetProvider, certo? Se tiver, dependendo de como você o parametrizou (poAllowCommandText:=True), não será necessário manipular o SQLDataset. Manipule somente o ClientDataset.

creio que o correto seria:

begin
    with Dm.cds_Predatado do
    begin
        Close;
        CommandText := ´select * from Predatado where upper(favorecido) like upper( :1 )´;
        Params[0].AsString := ´¬´+TxtLocalizar.Text+´¬´;
        Open;

        if IsEmpty then
        begin
            Application.MessageBox(´Erro 1001 - Favorecido não encontrado !´,´Erro procura´, mb_ok + mb_IconWarning);
            TxtLocalizar.Text := ´´;
        end;
    end;


GOSTEI 0
POSTAR