Pesquisa com sql
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
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
Curtidas 0
Respostas
Massuda
06/01/2005
Não testei, mas experimente mudar seu SELECT parae mudar a forma de passar o parâmetro para...
select * from Predatado where upper(favorecido) like upper(":1")
Params[0].AsString := ´¬´ + self.TxtLocalizar.Text + ´¬´;
GOSTEI 0
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;
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