Problemas com Transação entre tabelas

Delphi

28/09/2005

Olá pessoal,

Tenho um probleminha e peço a gentileza da ajuda de vocês, se possível.
Acontece que a algum tempo que não trabalho com Delphi e meu último aplicativo ainda foi com paradox utilizando BDE. Me deparei com a necessida de desenvolver um aplicativo com Interbase e antes de sugar os outros resolvi dar uma atualizada em meus conhecimentos; para isso comprei alguns livros.

Já com meus estudos, no final de um destes livros é descrito o módulo de estoque que consiste de dois forms um de cadastro de produtos e o outro de entrada de mercadorias no estoque. Pois bem, no form entrada de mercadorias, a gravação após preenchimento deveria atualizar também a quantidade de mercadorias disponíveis no form de cadastro de produtos e isso não ocorre, muito menos gera nenhum erro nem na compilação nem na execução do aplicativo.

O gdb e suas tabelas foram geradas diretamente no IBConsole, as tabelas envolvidas são Livros e EntLivros e usa um DM com um IBDatabase e um IBTransation com as conexões feitas através de dataset e querys nos forms. O código desta operação é o seguinte:

[color=blue:bb5d3767e2]var
strsql2 : string;
begin
inherited;
if ibdataset1.FieldByName(´status´).AsString = ´S´ then
begin
strsql2 := ´Select * from livros ´;
strsql2 := strsql2 + ´ Where id = ´ + #39 + ibdataset1.FieldByName(´id_isbn´).AsString + 39;
livros.IBDataSet1.Close;
livros.IBDataSet1.SelectSQL.Clear;
livros.IBDataSet1.SelectSQL.Add(strsql2);
livros.IBDataSet1.Open;
livros.IBDataSet1.Edit;
livros.IBDataSet1.FieldByName(´est_disp´).AsInteger := livros.IBDataSet1.FieldByName(´est_disp´).AsInteger + ibdataset1.FieldByName(´qt_rec´).AsInteger;
livros.IBDataSet1.Post;
livros.IBDataSet1.Close;
mensagem := ´A quantidade em estoque deste livro foi ´ + 13 + ´foi atualizada com sucesso. ´;
Application.MessageBox(Pchar(mensagem), ´Informação´, MB_Ok+mb_IconInformation);
end;[/color:bb5d3767e2]

O livro é o Sistema Comercial Integrado com Delphi 2005 - Cadastro e Estoque de Oliviero e Pereira Alves.

Realmente tentei procurar a solução diretamente aqui no forum mas não consegui achar algo; mesmo porque, me parece que o código não tem problema algum.

Peço desculpas pelo incômodo e agradeço qualquer ajuda.

Abraço a Todos


Nelsondiaz

Nelsondiaz

Curtidas 0

Respostas

Mkoch

Mkoch

28/09/2005

Se você está usando transação está faltando dar o commit no final da operação.


GOSTEI 0
POSTAR