Fórum Por que naum quer dar certo? #51436
29/06/2005
0
criei a seguinte stored procedure:
CREATE PROCEDURE SP_FINALIZA_VENDA(
VENDA INTEGER,
FPAG1 INTEGER,
PAG1 NUMERIC(9,2),
FPAG2 INTEGER,
PAG2 NUMERIC(9,2),
FPAG3 INTEGER,
PAG3 NUMERIC(9,2),
DESCONTO NUMERIC(3,2),
ACRESCIMO NUMERIC(3,2))
AS
BEGIN
UPDATE VENDA
SET FPAG1 = :FPAG1,
PAG1 = :PAG1,
FPAG2 = :FPAG2,
PAG2 = :PAG2,
FPAG3 = :FPAG3,
PAG3 = :PAG3,
DESCONTO = :DESCONTO,
ACRESCIMO = :ACRESCIMO
WHERE (VENDA = :VENDA);
END
até ai tudo bem, no ibexpert funciona que é uma beleza mas quando tento executa-la no delphi funciona
em parte por exemplo se eu tentar jogar o valor 5,75 em qualquer campo do tipo numeric vou ter o valor
6 gravado e não 5,75.
Estou utilizando o Delphi 7 com o Dbexpress o driver é o do interbase o FireBird é o 1.5 e o processo para
execução do SP e o seguinte:
TD.TransactionID := 1;
TD.IsolationLevel := XILReadCommitted;
SQLC.StartTransaction(TD);
SP_Venda.StoredProcName := ´SP_FINALIZA_VENDA´;
SP_Venda.ParamByName(´FPAG1´).Value := 1;
SP_Venda.ParamByName(´FPAG2´).Value := 2;
SP_Venda.ParamByName(´FPAG3´).Value := 3;
SP_Venda.ParamByName(´PAG1´).Value := editpag1.value;
SP_Venda.ParamByName(´PAG2´).Value := editpag2.value;
SP_Venda.ParamByName(´PAG3´).Value := editpag3.value;
SP_Venda.ParamByName(´DESCONTO´).Value := editdesconto.value;
SP_Venda.ParamByName(´ACRESCIMO´).Value := editacrescimo.value;
SP_Venda.ExecProc;
SQLC.Commit(TD);
eu reorganizei o procedimento e ele ficou um pouco genérico para que fique mais facil o entendimento.
os edits estão retornando valores Real.
tai meu problema.
Tronbr
Curtir tópico
+ 0Posts
29/06/2005
Steve_narancic
Gostei + 0
30/06/2005
Tronbr
Gostei + 0
30/06/2005
Beppe
Gostei + 0
01/07/2005
Tronbr
os campos estao definidos da seguinte forma:
NUMERIC(9,2)
DEFAULT 0.00
CHECK (VALUE >= 0.00)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)