Fórum Consulta SQL com parametros #266394

21/01/2005

0

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

Responder

Posts

21/01/2005

Rjun

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


Responder

Gostei + 0

21/01/2005

Gandalf.nho

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


Responder

Gostei + 0

21/01/2005

Marcio.theis

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;



Responder

Gostei + 0

21/01/2005

Mfilho

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

Obrigado !!!


Responder

Gostei + 0

21/01/2005

Fernando Piccini

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar