[firebase-br] Ajuda com Stored Procedure!

Ricardo ricardo em sccutta.com.br
Ter Nov 23 14:18:28 -03 2004


  Valeu RedDevil!!! Se você não tivesse me dito, eu ficardia o dia inteiro tentando commitar....

  
  ----- Original Message ----- 
  From: RedDevil 
  To: Ricardo ; FireBase 
  Sent: Tuesday, November 23, 2004 10:13 AM
  Subject: Re: [firebase-br] Ajuda com Stored Procedure!


  ola Ricardo.
  tudo bem contigo?
  sincerely, espero que sim.

  nao eh possivel dar commit ou rollback dentro de uma SP, exceto quando ocorre um exception, quando entao acontece algo semelhante a um "rollback automatico", ou seja todas as alteraçoes sao desfeitas...

  mas, normalmente, voce deve esperar que o controle retorne para a aplicaçao, quando entao ou voce aproveita a transaçao para fazer mais alguma coisa ou entao da um commit e finaliza ela, okeyz?


  []s
  força sempre.
  ate +++

  Luiz "RedDevil" Stefanski
  =======><=========
  ====> Delphi 4 <=====
  ====> powered <=====
  ======> by <=======
  ===> IBObjects <=====
  =======><=========
  more in:
  http://www.RedDevil.eti.br (home)
  http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630 (instalaçao)
  http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165 ("tips")



  ----- Original Message ----- 
  From: "Ricardo" <ricardo em sccutta.com.br>
  To: "FireBase Br" <lista em firebase.com.br>
  Sent: Tuesday, November 23, 2004 9:34 AM
  Subject: [firebase-br] Ajuda com Stored Procedure!


  Alguém sabe como eu posso dar um Commit dentro de uma Procedure sem ter que ficar comitando por fora?

  A minha Procedure:

  SET TERM ^ ;

  CREATE PROCEDURE ATUA_ESTOQUE (
      IDPEDIDO INTEGER,
      TIPO CHAR(1) CHARACTER SET NONE)
  AS
  DECLARE VARIABLE VIDPROD CHAR(14) CHARACTER SET NONE;
  DECLARE VARIABLE VPQTDE NUMERIC(15,3);
  begin
    /*Tratamento quando for requição*/
    if (Tipo = 'R') then
    begin
      For
        Select i.idproduto, i.qtde
          From ItemPedido i
          where i.idpedido = :idpedido
          into :vidprod, :vpqtde do
      begin
        Update produto p set p.est_atual = (p.est_atual - :vpqtde) where (p.codigo = :vidprod);
      end/*For*/
      exit;
    end/*if (Tipo = 'R') then*/
  end
  ^

  SET TERM ; ^ 


------------------------------------------------------------------------------


  ______________________________________________
  FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
  Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br

  __________ Informação do NOD32 1.930 (20041123) __________

  Esta mensagem foi verificada pelo NOD32 Sistema Antivírus
  http://www.nod32.com.br



Mais detalhes sobre a lista de discussão lista