Subject | Database Commitment Problem. |
---|---|
Author | jack_engleman |
Post date | 2006-11-01T17:34:28Z |
In my IBOobjects conversion, I seem to have an intermittent problem
with database transactions not commiting as they normally did using
the BDE.
I have one module with my Database_M as TIBODatabase and the following
routines.
procedure TDM_Database.Commitit(Num: Integer);
begin
// if not Database_Main.InTransaction then
// showmessage(IntToStr(x) + ') Not in Transaction before commit');
if Database_M.InTransaction then
begin
Database_M.Commit;
end;
end;
procedure TDM_Database.Startit(Num: Integer);
begin
// if Database_Main.InTransaction then
// showmessage(IntToStr(x) + ') Active in Transaction before Start.');
if not Database_M.InTransaction then
begin
Database_M.StartTransaction;
end;
end;
procedure TDM_Database.Backit(Num: Integer);
begin
// if not Database_Main.InTransaction then
// showmessage(IntToStr(x) + ') Not in Transaction before RollBack');
if Database_M.InTransaction then
begin
Database_M.RollBack;
end;
end;
I generally call startit at the beginning of my database activity and
commitit when I want to commit. I may call Startit twice in which
case the routine does not call the database Start Transaction, since
one has been called. Is there a possibility that the commit
transaction is not being called. This is a problem that seems to be
intermittent, so I am not sure what is happening except some
transactions are not commiting to the database.
Thanks In Advance
Jack Engleman
with database transactions not commiting as they normally did using
the BDE.
I have one module with my Database_M as TIBODatabase and the following
routines.
procedure TDM_Database.Commitit(Num: Integer);
begin
// if not Database_Main.InTransaction then
// showmessage(IntToStr(x) + ') Not in Transaction before commit');
if Database_M.InTransaction then
begin
Database_M.Commit;
end;
end;
procedure TDM_Database.Startit(Num: Integer);
begin
// if Database_Main.InTransaction then
// showmessage(IntToStr(x) + ') Active in Transaction before Start.');
if not Database_M.InTransaction then
begin
Database_M.StartTransaction;
end;
end;
procedure TDM_Database.Backit(Num: Integer);
begin
// if not Database_Main.InTransaction then
// showmessage(IntToStr(x) + ') Not in Transaction before RollBack');
if Database_M.InTransaction then
begin
Database_M.RollBack;
end;
end;
I generally call startit at the beginning of my database activity and
commitit when I want to commit. I may call Startit twice in which
case the routine does not call the database Start Transaction, since
one has been called. Is there a possibility that the commit
transaction is not being called. This is a problem that seems to be
intermittent, so I am not sure what is happening except some
transactions are not commiting to the database.
Thanks In Advance
Jack Engleman