Galera, tenha a seguinte procedure no IBExpert e ela não esta gravando o
valor do saldo na tabela SIGFSALD. O que pode estar errado ?

O engraçado é que ela funcionava antes perfeitamente. (Foi um amigo meu quem
a fez, pois eu não entendo nada de procedure e já estou deseperado)

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
     _  __________________________________  _
    / )|                                  |( \
   / / |     Eduardo de Almeida Silva     | \ \
 _( (_ |  _  * [EMAIL PROTECTED]   _  | _) )_
(((\ \)|_/ )__________________________( \_|(/ /)))

(\\\\ \_/ /                            \ \_/ ////)

 \       /                              \       /

  \    _/                                \_    /

  /   /                                    \   \



[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< 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

 



Responder a