Apos inserir um registro o FB trava, tendo que fecha-lo
12/08/2004
0
Olá forum,
Tenho uma tela de cadastros, faço a inserção de um registro e tudo ok. Se tento inserir um novo registro logo depois da erro. Meus codigos estao logo abaixo:
procedure TFrmCadSetor.sbtNovoClick(Sender: TObject);
begin
Try
DatModule.dsGuiaSetor.Insert;
except
showmessage (´Não foi Possivel Inserir um Novo Registro´);
datModule.dsGuiaSetor.Cancel;
datModule.IBTransaction.Rollback;
end;
end;
procedure TFrmCadSetor.sbtSalvarClick(Sender: TObject);
begin
Try
datModule.dsGuiaSetor.Post;
DatModule.IBTransaction.Commit;
except
showmessage (´Não foi possivel salvar o regsitro´);
DatModule.dsGuiaSetor.Cancel;
DatModule.IBTransaction.Rollback;
end;
end;
procedure TFrmCadSetor.FormCreate(Sender: TObject);
begin
try
DatModule.IBDatabase.Connected := true;
DatModule.IBTransaction.Active := true;
except
ShowMessage(´Não foi possível realizar a conexão com a base de dados´);
end;
end;
procedure TFrmCadSetor.FormDestroy(Sender: TObject);
begin
try
if DatModule.IBTransaction.InTransaction then
DatModule.IBTransaction.Commit;
DatModule.dsGuiaSetor.Active := false;
DatModule.IBTransaction.Active := false;
DatModule.IBDatabase.Connected := false;
except
ShowMessage(´erro de comunicação com a base de dados´);
end;
end;
procedure TFrmCadSetor.FormShow(Sender: TObject);
begin
IF (DATMODULE.dsGuiaSetor.Active = FALSE) THEN
DatModule.dsGuiaSetor.Active:= True;
end;
procedure TFrmCadSetor.sbtnCancelarClick(Sender: TObject);
begin
try
Begin
DatModule.dsGuiaSetor.Cancel;
DatModule.IBTransaction.Rollback;
end
except
showmessage (´Erro na comunicação com a Base de dados´);
end;
end;
end.
Onde: DatModule é o meu data module e dsGuiaSetor é o meu ibdataset
Apesar de ter colocado meu codigo dentro de um try...except o erro nao é tratado pelo codigo e aparece uma mensagem do delphi em ingles. Eu faço a conexao com o banco de dados no evento oncreate e no evento ondestroy do form eu desconecto.
Alguem saberia pq esta dando esse erro na hora de inserir um segundo registro?
Uso D7, FB 1.5 e IBX
Tenho uma tela de cadastros, faço a inserção de um registro e tudo ok. Se tento inserir um novo registro logo depois da erro. Meus codigos estao logo abaixo:
procedure TFrmCadSetor.sbtNovoClick(Sender: TObject);
begin
Try
DatModule.dsGuiaSetor.Insert;
except
showmessage (´Não foi Possivel Inserir um Novo Registro´);
datModule.dsGuiaSetor.Cancel;
datModule.IBTransaction.Rollback;
end;
end;
procedure TFrmCadSetor.sbtSalvarClick(Sender: TObject);
begin
Try
datModule.dsGuiaSetor.Post;
DatModule.IBTransaction.Commit;
except
showmessage (´Não foi possivel salvar o regsitro´);
DatModule.dsGuiaSetor.Cancel;
DatModule.IBTransaction.Rollback;
end;
end;
procedure TFrmCadSetor.FormCreate(Sender: TObject);
begin
try
DatModule.IBDatabase.Connected := true;
DatModule.IBTransaction.Active := true;
except
ShowMessage(´Não foi possível realizar a conexão com a base de dados´);
end;
end;
procedure TFrmCadSetor.FormDestroy(Sender: TObject);
begin
try
if DatModule.IBTransaction.InTransaction then
DatModule.IBTransaction.Commit;
DatModule.dsGuiaSetor.Active := false;
DatModule.IBTransaction.Active := false;
DatModule.IBDatabase.Connected := false;
except
ShowMessage(´erro de comunicação com a base de dados´);
end;
end;
procedure TFrmCadSetor.FormShow(Sender: TObject);
begin
IF (DATMODULE.dsGuiaSetor.Active = FALSE) THEN
DatModule.dsGuiaSetor.Active:= True;
end;
procedure TFrmCadSetor.sbtnCancelarClick(Sender: TObject);
begin
try
Begin
DatModule.dsGuiaSetor.Cancel;
DatModule.IBTransaction.Rollback;
end
except
showmessage (´Erro na comunicação com a Base de dados´);
end;
end;
end.
Onde: DatModule é o meu data module e dsGuiaSetor é o meu ibdataset
Apesar de ter colocado meu codigo dentro de um try...except o erro nao é tratado pelo codigo e aparece uma mensagem do delphi em ingles. Eu faço a conexao com o banco de dados no evento oncreate e no evento ondestroy do form eu desconecto.
Alguem saberia pq esta dando esse erro na hora de inserir um segundo registro?
Uso D7, FB 1.5 e IBX
Flavia_mococa
Curtir tópico
+ 0
Responder
Posts
12/08/2004
Flavia_mococa
Obrigada A Farias, mais achei onde estava o erro.
No botao salvar eu tava dando um commit e fechando a transação, por isso tava dando erro. Mudei o commit para commitretaining e funcionou perfeito.
Valeu
No botao salvar eu tava dando um commit e fechando a transação, por isso tava dando erro. Mudei o commit para commitretaining e funcionou perfeito.
Valeu
Responder
Clique aqui para fazer login e interagir na Comunidade :)