Consulta SQL com parametros

Delphi

21/01/2005

Tenho a seguinte consulta:

dm.QRelPedido.SQL.Clear;
dm.QRelPedido.SQL.Add(´select codped, produto, qtde, nossolote from itens as i´);
dm.QRelPedido.SQL.Add(´where i.codped in (SELECT p.codped FROM pedidos as p´);
dm.QRelPedido.SQL.Add(´WHERE p.SITUACAO = ´´em aberto´´) and (i.produto=:txtcodigo)´);
dm.QRelPedido.Parameters.ParamByName(´txtcodigo´).Value := cbxProduto.Text;
dm.QRelPedido.ExecSQL;

Quando uso somente 1 parametro (txtcodigo) para substituir (variavel) a consulta funciona qdo uso 2 (txtcodigo e substituo a expressao ´em aberto´ por outra variavel (txtsituacao) dá erro.

Queria fazer a consulta substituindo por 2 ou 3 parametros.

Ex: periodo: data inicial, data final e cliente (na mesma consulta)

Estou usando ADOQuery.

Alguem poderia me ajudar?


Mfilho

Mfilho

Curtidas 0

Respostas

Rjun

Rjun

21/01/2005

Qual erro que dá ? Que banco vc esta usando ?


GOSTEI 0
Gandalf.nho

Gandalf.nho

21/01/2005

Como você monta sua SQL com o 2º parâmetro?


GOSTEI 0
Marcio.theis

Marcio.theis

21/01/2005

Tente assim:

dm.QRelPedido.SQL.Clear;
dm.QRelPedido.SQL.Add(´select codped, produto, qtde, nossolote´);
dm.QRelPedido.SQL.Add(´from itens as i´);
dm.QRelPedido.SQL.Add(´where i.codped in (SELECT p.codped FROM pedidos as p´);
dm.QRelPedido.SQL.Add(´                   WHERE p.SITUACAO =:txtSituacao)´);
dm.QRelPedido.SQL.Add(´and i.produto =:txtcodigo´);
dm.QRelPedido.Parameters.ParamByName(´txtcodigo´).Value:=cbxSituacao.Text;
dm.QRelPedido.Parameters.ParamByName(´txtcodigo´).Value:=cbxProduto.Text;
dm.QRelPedido.Open;



GOSTEI 0
Mfilho

Mfilho

21/01/2005

Muito Obrigado. o Cod. que vc me passou funcionou perfeitamente.

Obrigado !!!


GOSTEI 0
Fernando Piccini

Fernando Piccini

21/01/2005

Pelo q percebi! vc estava tentando executar um comando [b:4d47ce257e]DML[/b:4d47ce257e] com [b:4d47ce257e]execSQL[/b:4d47ce257e].
Para executar um comando DML vc deve utilizar o método [b:4d47ce257e]Open[/b:4d47ce257e].

vlw


GOSTEI 0
POSTAR