Subject | AW: [IBO] IB_TransForUpdates and BLOB fields |
---|---|
Author | Thomas Lenders |
Post date | 2013-12-03T10:20:59Z |
Hi Jason,
I’ve got to do some more testing, seems like one of the problems is visibility of changes between the transactions.
For example, I can enter a text in blob field that was null before and it will not show after post, but when I edit an already existing blob it will show.
Also, if I don’t have auto commit and later rollback the transaction, it will still show the edited value in my grid/edit control even though the database has been reverted to the old value.
Also had a case where editing a blob and non-blob value at the same time only one of the changes went through.. but I’m not sure currently if this was “only” one the values not being displayed correctly.
Will look at this some more when I have the time.
My two transactions are both set to ‘read committed’ isolation level (no snapshot) and the reading one is also read-only. Other than that, there is just a connection, two queries, datasources and grids and some additional edit controls. The two queries are also linked by a master/detail relation (using mastersource and masterlinks).
Regards,
Thomas
Von: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]
Im Auftrag von IBO Support List
Gesendet: Mo, 2. Dezember 2013 21:46
An: IBObjects@yahoogroups.com
Betreff: RE: [IBO] IB_TransForUpdates and BLOB fields
Hi Thomas,
Normally this is used when you want the reading and writing of data to have different transaction behaviors, rather than to try and work more efficiently only. You may want readcommitted for browsing data but readrepeatable for writing data to more strictly insure concurrency.
This sounds to me like you are bumping into a problem that should be fixed. Would you please put together a little sample app for me to look at this?
Thanks,
Jason
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]
On Behalf Of Thomas Lenders
Sent: Monday, December 2, 2013 6:20 AM
To: IBObjects@yahoogroups.com
Subject: [IBO] IB_TransForUpdates and BLOB fields
Hello group,
I recently started to experiment with setting IB_Transaction to a READONLY Transaction and supplying an additional READ/WRITE Transaction in IB_TransForUpdates property.
The idea is to reduce the amount of READ/WRITE Transaction open at the same time on the server.
1. Is this an intended use of this property?
2. I noticed that I seem to be unable to edit BLOB fields now (using TIB_Memo component).
3. Deleting IB_TransForUpdates and setting IB_Transaction to be READ/WRITE makes the BLOB editable again (it’s “editable” before as well but changes are not preserved).
Hope someone can help me out or share some thoughts on how to overcome the problem of long running transactions. We also have the problem that we can’t just use a component with client-side caching (like TClientDataset) because there is business logic in the database, implemented as triggers, that needs to fire and possibly prevent some data from being edited on posting the changes but before the Tx is being committed (or let’s say I don’t yet know how to use a TClientDataset in that way).
Thanks,
Thomas