[firebase-br] Dúvida em Sotored Procedure

Paulo Henrique Mendes Martin paulo.mendes87 em gmail.com
Qui Maio 10 12:52:27 -03 2007


Bom Dia Colegas.

Eu estou com uma dúvida, o seguinte fragmento da Stored Procedure
atualiza_movimentacao:

Begin
  if (i_type = 'C') then
  begin
    v_qtde = v_qtde + i_qtde;
  end
  if (i_type = 'R') then
  begin
    if (v_qtde < i_qtde) then
    begin
      err = 'E1';
      suspend;
    end
    v_qtde = v_qtde - i_qtde;
  end

instert into movimentacao (data, cod_cart, qtde, tipo) values (:i_data,
:i_cod_cart, :i_qtde, :i_type);

update cartuchos set quantidade = :v_qtde where cod = :i_cod_cart;

suspend;

Isso é simples, a sp tem como parametro a data, a quantidade e o codigo
produto para ser adiconado ao estoque, assim eu gravo um registro
na tabela de movimentação e atualizo a quantidade para mais ou para menos
dependendo do caso. Mas a minha dúvida é, quando se inicia
isso, pode-se dizer que começamos uma transação? Pois caso seja, precisaria
ter um commit work, mas dessa maneira a sp não compila.

Então, quando chamo a sp pela aplicação como ficaria o controle da
transação?

Estou usando Fb 2.1 e VB 6 e acessando via ADODB 2.7.



Mais detalhes sobre a lista de discussão lista