TLOBLocator.FlushBuffer

AndreyB

Member²
I have the tLOBLocator variable with Buffering property set to True. When I do FlushBuffer explicity in my procedure I have the exception generated in TLobLocator destructor 'cause destructor also tries to flush buffer which actually is already flushed. Isn't it necessary to do some kind of checking before call of flushing in TLOBLocator.Destructor?
 
You are right, when Buffering is enabled and you explicitly flush the buffer, then you will get an "ORA-22276: invalid locator for LOB buffering" exception. The TLOBLocator indeed needs to keep track of the fact that data has been written since the last call to FlushBuffer. We will correct this for the next patch release.

As a temporary work around you can set the Buffering property to false instead of calling the FlushBuffer procedure. Disabling buffering will also flush the buffer, and when the TLOBLocator instance is subsequently freed, it will not implicitly flush the buffer again.

------------------
Marco Kalter
Allround Automations
 
Back
Top