On 7/16/21 12:39 PM, Tony Whyman wrote:
I have recently added support for the IBatch interface to IBX and the
good news that it all appears to work fine. However, I am still
puzzled by why inline blobs exist.
For as long as I can remember, Firebird has allowed you to over-ride
the input metadata SQLType to any other type that can be converted to
the actual column type. For example, SQL_BLOB to SQL_VARYING. You can
then pass a relatively short blob string as an SQL_VARYING (character
id to OCTETS for binary, and otherwise as appropriate) and with no
need to go to all the hard work of actually creating a blob,etc. I
assume that it is on the server side that the string gets written into
blob storage and would not expect it to be otherwise.
In all my testing, passing blob text as SQL_VARYING works fine for
both normal update/insert operations and for batches using IBatch. So
I am puzzled as to why the IBatch inline blob exists. What am I missing?
In some field one can have typically small blobs, but some of them may
be bigger than maximum string size (btw, 32K is also not too big object
currently). If you use segmented blobs it's also problematic to send
them to server in appropriate form using strings.
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel