Fórum Problemas com Transação entre tabelas #297609
28/09/2005
0
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
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
Curtir tópico
+ 0
Responder
Posts
28/09/2005
Mkoch
Se você está usando transação está faltando dar o commit no final da operação.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)