Best practice to insert CLOB/BLOB with generic ESQL/C code
Posted in 2020
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