Hello,
What is the best solution to insert CLOB/BLOB values from ESQL/C code, when you don't know the storage options of CLOB/BLOB of the SQL columns, because you write generic code that can execute any kind of SQL statement?
To insert a CLOB/BLOB, you create / initialize an ifx_lo_t object, by using ifx_lo_def_create_spec() / ifx_lo_create()...
So far I do the following (shorten version edited by hand, without error checking):
ifx_lo_create_spec_t *cs;
ifx_lo_t *lo = (ifx_lo_t *) v->sqldata; // mallocated ...
int lofd;
ifx_lo_def_create_spec(&cs);
lofd = ifx_lo_create(cs, LO_RDWR | LO_LOCKALL, lo, &err);
ifx_lo_write(lofd, buf, len, &err);
ifx_lo_close(lofd);
ifx_lo_spec_free(cs);
According to the doc, this should take "storage characteristics from the inheritance hierarchy" ...
Is this ok?
Is it better to use the "system-specified storage characteristics", passing NULL for the creation specs?
What about the LO_* flags like LO_LOCKALL ...?
Should I make all these creation options configurable?
Thanks!
Seb
------------------------------
Sebastien FLAESCH
------------------------------
#Informix