select oracle não retorna resultados só no delphi

25/11/2005

O select abaixo funcionou perfeitamente no oracle, mas quando tento fazer pelo delphi com passagem de parametros nos 3 ultimos filtros do select o delphi não retorna nada.

No oracle:
select A.CODPRODUTO, A.DESCRICAO,A.CODMOEDA,A. EMBVENDA1, A.EMBVENDA2, A.FATORVENDA, A.FATORVENDA2,C.VLRVENDA
from produto A, produtoemp B, precovnd C
where A.codproduto=B.codproduto
and B.codproduto=C.codproduto
and A.codproduto=6
and B.codempresa=1
and C.codlivropreco=13;

No delphi:
select A.CODPRODUTO, A.DESCRICAO,A.CODMOEDA,A. EMBVENDA1, A.EMBVENDA2, A.FATORVENDA, A.FATORVENDA2,C.VLRVENDA
from produto A, produtoemp B, precovnd C
where A.codproduto=B.codproduto
and B.codproduto=C.codproduto
and A.codproduto=:pcodproduto
and B.codempresa=:pcodempresa
and C.codlivropreco=:pcodlivropreco;


Gutopmc

Respostas

25/11/2005

Alexespina

no final de ultimo parametro retitrar o ponto e virgula existente , pois no delphi ele não aceita.


Responder Citar

25/11/2005

Gutopmc

no final de ultimo parametro retitrar o ponto e virgula existente , pois no delphi ele não aceita.


coloquei no exemplo por distração, ja esta sem no programa e mesmo assim nao funciona.


Responder Citar

25/11/2005

Bon Jovi

Pra faciliar poste todo o código envolvido, inclusive dfm.


Responder Citar

28/11/2005

Gutopmc

Abaixo esta o trecho que monta o sql a partir das opções de consulta do usuário. Já verifiquei o valor dos parametros e a montagem do sql e estes estão ok. Parece que tem uma limitação de ´and´ no delphi.

function TAppServerPlus.pvqryestoqueDataRequest(Sender: TObject;
Input: OleVariant): OleVariant;
var str_sql:variant;
int_par: integer;
tmp_params: tparams;
begin
with pvqryestoque do
begin
with Qryestoque do
begin
ParamCheck:=false;
Close;
params.Clear;
//da unit DBClient procedure UnpackParams
DBClient.UnpackParams(input,params);
SQL.Clear;
SQL.Add(´select A.CODPRODUTO, A.DESCRICAO, A.CODMOEDA, A.EMBVENDA1, A.EMBVENDA2, A.FATORVENDA, A.FATORVENDA2,C.VLRVENDA´);
SQL.Add(´from produto A, produtoemp B, precovnd C´);
SQL.Add(´where A.codproduto=B.codproduto´);
SQL.Add(´and B.codproduto=C.codproduto´);
if params.FindParam(´pdescricao´)<>nil then begin
SQL.Add(´and A.DESCRICAO like :pdescricao´);
end;
if params.FindParam(´preferencia´)<>nil then begin
SQL.Add(´and A.REFERENCIA like :preferencia´)
end;
if params.FindParam(´pcodproduto´)<>nil then begin
SQL.Add(´and C.CODPRODUTO=:pcodproduto´);
end;
if params.FindParam(´pcodempresa´)<>nil then begin
SQL.Add(´and C.CODEMPRESA=:pcodempresa´);
end;
if params.FindParam(´pcodlivropreco´)<>nil then begin
SQL.Add(´and C.CODLIVROPRECO=:pcodlivropreco´);
end;
ParamCheck:=True;
Open;
end;//TSQLQuery
Result := Data;
end;//TDataSetProvider
end;


Responder Citar