Subject | Re: [firebird-support] Commiting Data is Not Working |
---|---|
Author | Vishal Tiwari |
Post date | 2015-06-18T13:09:27Z |
Got the answer in the below link.
http://stackoverflow.com/questions/30781212/rolling-back-transaction-doesnt-work-with-tpfib-components?noredirect=1#comment49820919_30781212
Solution:
I would also advise you to allocate the one transaction component to all the datasets (rather than the database). And use the start, commit, rollback methods of the transaction component. Further, you must assign the transaction component before you do any operations.
http://stackoverflow.com/questions/30781212/rolling-back-transaction-doesnt-work-with-tpfib-components?noredirect=1#comment49820919_30781212
Solution:
I would also advise you to allocate the one transaction component to all the datasets (rather than the database). And use the start, commit, rollback methods of the transaction component. Further, you must assign the transaction component before you do any operations.
Enjoy !!!
On Thursday, 18 June 2015 5:15 PM, "Vishal Tiwari vishualsoft@... [firebird-support]" <firebird-support@yahoogroups.com> wrote:
Hi Helen, Hi All,
I have one issue with the transaction, let me explain in detail what is happening...
I am using Delphi 2010 with FIB Plus components ( TpFIBDatabase, TpFIBTransaction and TpFIBDataSet ), and Firebird as database.
Case 1:
I
have an existing customer's database, on which Commit is not working in
any case. I have created a demo project in that I have placed all new
FIB component and tried to Commit the changes. But the changes are not
getting Committed.
But
in the current project (not a demo project), when I say Dataset.Post;
(Dataset.AutoCommit is set to False) and after some process the data is
posted to the database, where it was not supposed to be.
Case 2:
I
have created a new database, in that created only one table with two
fields. I have created a sample project in that I used above said FIB
components are tried to Commit and Rollback the changes.
It was working fine and suddenly it stopped working on Committing the changes.
Then
I created another sample project just copied TpFIBDatabase component
and then created all other component newly and till now everything is
working fine on the newly created database.
I explained the Case 2, because in Case 1 the data is getting Commited even it was not suppoed to be. So in the Case 2 I copied the same FIB componets just to check whether they could post the data into the database. Surprisingly, none of the FIB component including newly created or copied from the working project able to Commit the changes.
So I would like to learn about the firebird database littely bit in detail, is there anything I need to look on my customer's Firebird database, like locking or isolation level.
What could be the issue for not able to Commit the changes on the customer's database in Case 2 ?
With Best Regards.
Vishal