Consulta SQL com parametros
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?
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
Curtidas 0
Respostas
Rjun
21/01/2005
Qual erro que dá ? Que banco vc esta usando ?
GOSTEI 0
Gandalf.nho
21/01/2005
Como você monta sua SQL com o 2º parâmetro?
GOSTEI 0
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
21/01/2005
Muito Obrigado. o Cod. que vc me passou funcionou perfeitamente.
Obrigado !!!
Obrigado !!!
GOSTEI 0
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
Para executar um comando DML vc deve utilizar o método [b:4d47ce257e]Open[/b:4d47ce257e].
vlw
GOSTEI 0