|Subject||RE: [IBO] IB_TransForUpdates and BLOB fields|
|Author||IBO Support List|
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf Of Thomas Lenders
Sent: Tuesday, December 3, 2013 3:21 AM
Subject: AW: [IBO] IB_TransForUpdates and BLOB fields
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).
IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] Im Auftrag von
IBO Support List
Gesendet: Mo, 2. Dezember 2013 21:46
Betreff: RE: [IBO] IB_TransForUpdates and BLOB fields
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?
IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf Of
Sent: Monday, December 2, 2013 6:20 AM
Subject: [IBO] IB_TransForUpdates and BLOB fields
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).