Galera, to com uma procedure que ta dando erro. quando ela é executada não esta me retornando o valor...
Como eu não manjo de procedures (e não fui eu quem a fez) estou pedindo ajuda de vcs, pois não consigo mais falar com o cara que a fez. Alguém pode me dar uma mão, to precisando muito...pois os dados estão todos errados em função desta procedure. Abaixo está a chamada da procedure no programa e após a procedure dentro do banco. dmSIGFAP01.FibDataBase.StartTransaction; spGravaSaldo.ParamByName('CD_MATERIA').AsInteger := dbdtCD_MATERIA.Field.AsInteger; spGravaSaldo.ParamByName('CD_UNIDADE').AsInteger := StrToInt(edtCD_UNIDADE.text); spGravaSaldo.ParamByName('CD_PROGRAMA').AsInteger := dbdtCD_PROGRAMA.Field.AsInteger; spGravaSaldo.ParamByName('QT_PRODUTO').AsFloat := dbdtQT_MATERIAL.Field.AsFloat; spGravaSaldo.ParamByName('VR_UNITARIO').AsFloat := dbdtVR_UNITARIO.Field.AsFloat; spGravaSaldo.ParamByName('TP_TIPO').AsString := 'E'; spGravaSaldo.ParamByName('TP_MODO').AsString := 'I'; spGravaSaldo.ExecProc; dmSIGFAP01.FibTransacao.Commit; Aqui está a procedure CREATE PROCEDURE GRAVA_SALDO ( CD_MATERIA INTEGER, CD_UNIDADE INTEGER, CD_PROGRAMA INTEGER, QT_PRODUTO NUMERIC(15,2), VR_UNITARIO NUMERIC(15,2), TP_TIPO CHAR(1), TP_MODO CHAR(1)) AS DECLARE VARIABLE NR_COUNT INTEGER; DECLARE VARIABLE QT_SALDO NUMERIC(15,2); begin NR_COUNT = 0; SELECT COUNT(*) FROM SIGFSALD WHERE CD_MATERIAL = :CD_MATERIA AND CD_UNIDADE = :CD_UNIDADE AND CD_PROGRAMA = :CD_PROGRAMA INTO :NR_COUNT; IF ( :TP_TIPO = 'E' ) THEN QT_SALDO = :QT_SALDO + :QT_PRODUTO; ELSE QT_SALDO = :QT_SALDO - :QT_PRODUTO; IF ( :NR_COUNT = 0 ) THEN BEGIN INSERT INTO SIGFSALD ( CD_MATERIAL, CD_UNIDADE, CD_PROGRAMA, QT_SALDO ) VALUES ( :CD_MATERIA, :CD_UNIDADE, :CD_PROGRAMA, :QT_SALDO ); END ELSE BEGIN UPDATE SIGFSALD SET QT_SALDO = :QT_SALDO WHERE CD_MATERIAL = :CD_MATERIA AND CD_UNIDADE = :CD_UNIDADE AND CD_PROGRAMA = :CD_PROGRAMA; END if ( (:TP_MODO = 'I') and (:TP_TIPO = 'E') and ( :VR_UNITARIO <> 0 ) )then begin FOR SELECT COUNT(*) FROM SIGFSALD WHERE CD_MATERIAL = :CD_MATERIA INTO :NR_COUNT DO BEGIN UPDATE SIGFSALD SET VR_UNITARIO =:VR_UNITARIO WHERE CD_MATERIAL = :CD_MATERIA; END END suspend; end ~\\|//~ -(o o)- o--------------oOOOo--(_)--oOOOo-------------o | | | Eduardo de Almeida Silva | | Kobra Sistemas | | [EMAIL PROTECTED] - (14)3263-0326 | | | | .oooO Oooo. | o----------------( )---( )---------------o \ ( ) / \_) (_/ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html