Fórum sql não funciona #329855

22/09/2006

0

Trabalho com sql ja faz um bom tempo.
Mas estou com problemas em montar uma query no delphi com base interbase.
Vejam:

>>>>Tenho esta primeira query que faz o somatório de campos double precision. Funciona normalmente.

q_aux2.SQL.clear;
q_aux2.SQL.add(´select sum(unid_frac_frac) frac from unidades_fracao where frac_cod=:frac_cod´);
q_aux2.parambyname(´frac_cod´).asstring:=q_aux.fieldbyname(´frac_cod´).asstring;
q_aux2.Open;


>>>>E esta outra pega o valor de uma outra tabela. Campo double precision. Funciona normalmente.

q_aux.SQL.clear;
q_aux.SQL.add(´select conta_rec_valor from conta_rec´);
q_aux.Open;


>>>>O problema está nesta query abaixo.
Agora, tenho uma outra query que faz alguns cálculos usando o resultado das querys acima.

q_aux1.sql.add(´insert into conta_rec_divisao (conta_rec_div_cod, conta_rec_valor) select´);
q_aux1.sql.add(´gen_id(gera_conta_rec_div_cod,1), cast(((unid_frac_frac*100/´+chr(39)+q_aux2.Fields[0].asstring+chr(39)+´)*´+chr(39)+q_aux.fieldbyname(´conta_rec_valor´).asstring+chr(39)+´)/100) as numeric(5,2))´);
q_aux1.sql.add(´from ......................´);

Desta maneira até funciona, mas se estes parâmetros que estou passando possuirem resultado com virgula o valor final desta query dá errado.
E se dentro da query eu colocar parâmetros como :valor, dá erro.

Como posso resolver o problema???


Briciosm

Briciosm

Responder

Posts

22/09/2006

Emerson Nascimento

isso dá erro?

q_aux1.sql.text :=
  ´insert into conta_rec_divisao (conta_rec_div_cod, conta_rec_valor) ´+
  ´select gen_id(gera_conta_rec_div_cod,1), ´+
  ´  (((unid_frac_frac*100) / :valor_aux2) * :valor_aux) / 100 ´+
  ´from ...´;
q_aux1.parambyname(´valor_aux2´).asfloat := q_aux2.Fields[0].asfloat;
q_aux1.parambyname(´valor_aux´).asfloat := q_aux.Fields[0].asfloat;
q_aux1.execute;



Responder

Gostei + 0

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

Aceitar