RES: [firebase-br] CORREÇÃO: SP Posicao do registro IBO x Firebird

RAMJ SISTEMAS & CONSULTORIA jubrovolski em yahoo.com.br
Qua Jan 26 08:30:53 -03 2005


 
Bom a Dia a todos

Criei a SP para o recalculo do saldo do caixa, porém agora esta dando um
erro quando da inserção/update do registro: Mensagem: 
Too manu concurrent executions of the same request

Alguém poderia me ajudar? Ai vai a SP e o Trigger


****************************************** SP

SET TERM ^ ;

CREATE PROCEDURE SALDOCAIXA (
    DATA DATE,
    CAIXA INTEGER)
AS
DECLARE VARIABLE ULTLANCTO INTEGER;
DECLARE VARIABLE SALDOANT NUMERIC(15,2);
DECLARE VARIABLE ID INTEGER;
DECLARE VARIABLE TIPO VARCHAR(1);
DECLARE VARIABLE VALOR NUMERIC(15,2);
begin
   select Max(NUMLAN) from MOVCAIXA where DATALAN<:DATA and CODCAIXA =
:CAIXA into :ULTLANCTO; /* Aki eu estou solicitando o ID do ultimo
lançamento até o dia 01/01/2005 */
   select SALDOAT from MOVCaixa where NUMLAN=:ULTLANCTO  and CODCAIXA =
:CAIXA into :SALDOANT; /* Aki eu consegui achar o valor do ultimo saldo
antes do dia 02/01/2005 */
   for select NUMLAN,TIPOLAN,VALORLAN from MOVCaixa where DataLAN>=:DATA
order by DATALAN,TIPOLAN,NUMLAN into :ID,:TIPO,:VALOR do
   begin
        if  (:TIPO='C') then begin
          SALDOANT=:SALDOANT+:VALOR;
        end else begin
          SALDOANT=:SALDOANT-:VALOR;
        end
         update MOVcaixa set SALDOAT=:SALDOANT where NUMLAN=:ID;
   end
end
^

SET TERM ; ^

GRANT SELECT,UPDATE ON MOVCAIXA TO PROCEDURE SALDOCAIXA;

GRANT EXECUTE ON PROCEDURE SALDOCAIXA TO SYSDBA;

*************************************************** TRIGGER
SET TERM ^ ;

CREATE TRIGGER RECALSALDOCAIXA FOR MOVCAIXA
ACTIVE AFTER INSERT OR UPDATE POSITION 0
AS
begin
  EXECUTE PROCEDURE SALDOCAIXA(NEW.DATALAN,NEW.CODCAIXA);
  /* Trigger text */
end
^
**************************************************








Mais detalhes sobre a lista de discussão lista