"Invalid BLOB ID" in IBX insert operation [CORE1417] #1835
Submitted by: michalk1 (michalk1)
When executing two subsequent insert operations into a blob field, first one with arbitrary not null value and the second one with null value, "Invalid BLOB ID" error arises on condition that transaction is restarted between the two calls. It seems (my presumption) that when parameter is assigned a null value, IBX just sets some flag and leaves rest of the parameter structure intact, which allows the old "BLOB ID" to survive to the next call. Unlike previous Firebird versions, FB2.1 Beta1 probably tests validity of the "BLOB ID" even if the parameter contains null value, which fails after commit of the original transaction.
CREATE TABLE TESTTAB
The same code runs ok if
The text was updated successfully, but these errors were encountered:
Commented by: Sean Leyne (seanleyne)
IBX does not directly support Firebird, never has.
v2.1 contains changes to the treatment/definition of Blob's at the API level, which is the likely why the application no longer runs correctly.
You are advised to:
- investigate other database connection components (IBObjects or FIBPlus), or
Commented by: michalk1 (michalk1)
Sean, I know that IBX officially doesn't support Firebird and in long term its better to switch to a different component set, but so far it works ok. After all, IBX gurantees support of older interbase versions and FB API is said to be backward compatible as well, so theoretically this could work as long as I don't use new FB features. Since Delphi includes IBX sources, it is also possible to build modified IBX version.
Change of client library (IBX uses GDS32.DLL) doesn't help, the exception is still raised.
Adriano, I attached a test case. Just run the exe file, fill in database name, click at "Create Db" (once) and then at "Run insert". This should lead to the exception in FB2.1 Beta1.