[firebase-br] Ultimo loop dessa SP não está atualizando. O que há de errado?
Giovani Rochê
giovaniroche em msn.com
Sex Out 10 07:28:08 -03 2008
Fiz essa SP abaixo e está rodando ok. No FOR SELECT que testei buscou 2 registros e debugando direto no FB vi que ele percorreu esses 2 registros porém no ultimo ele percorreu mas não efetivou as modificações. Alguém sabe me dizer o que pode estar acontecendo?
Obrigado.
CREATE PROCEDURE SP_RECEBE_OUTROS_PDV(
COD_CLIENTE SMALLINT DEFAULT NULL,
VALOR NUMERIC(18, 2) DEFAULT NULL)
AS
DECLARE VARIABLE SALDO NUMERIC(18, 2);
DECLARE VARIABLE COD SMALLINT;
DECLARE VARIABLE SUB NUMERIC(18, 2);
DECLARE VARIABLE NOVOVALOR NUMERIC(18, 2);
BEGIN
INSERT INTO CREDITO_CLIENTE (
COD_CLIENTE,
DATA_PGTO,
VALOR,
USADO,
CODIGO,
HORA_PGTO )
VALUES (
:COD_CLIENTE,
CURRENT_DATE,
:VALOR,
1,
GEN_ID(GEN_COD_CREDITO,1),
CURRENT_TIME );
SALDO = :VALOR;
FOR
SELECT CODIGO,SALDO FROM CONTA_A_RECEBER
WHERE STATUS = 0
AND VALOR > 0
AND COD_CLIENTE = :COD_CLIENTE
ORDER BY DATA_LANCAMENTO
INTO
:COD,:SUB
DO
BEGIN
IF (:SALDO > 0) THEN
BEGIN
IF (:SALDO < :SUB) THEN
BEGIN
NOVOVALOR = :SUB - :SALDO;
SALDO = 0;
END
IF (:SALDO > :SUB) THEN
BEGIN
NOVOVALOR = 0;
SALDO = :SALDO - :SUB;
END
IF (:SALDO = :SUB) THEN
BEGIN
NOVOVALOR = 0;
SALDO = 0;
END
UPDATE CONTA_A_RECEBER SET
SALDO = :NOVOVALOR
WHERE CODIGO = :COD;
IF (:NOVOVALOR = 0) THEN
BEGIN
UPDATE CONTA_A_RECEBER SET
STATUS = 1,
DATA_PAGTO = CURRENT_DATE,
HORA_PAGTO = CURRENT_TIME
WHERE CODIGO = :COD;
END
END
SUSPEND;
END
END;
_________________________________________________________________
Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger!
http://www.amigosdomessenger.com.br/
Mais detalhes sobre a lista de discussão lista