Declare a host variable for a simple large object
Use the loc_t data type to declare host variables
for database values of type TEXT or BYTE. You declare a host variable
for a simple-large-object column with the data type loc_t,
as shown in the following example:
EXEC SQL include locator;
⋮
EXEC SQL BEGIN DECLARE SECTION;
loc_t text_lob;
loc_t byte_lob;
EXEC SQL END DECLARE SECTION;
A locator variable with a TEXT data type has the loc_type field
of the locator structure set to SQLTEXT. For a BYTE variable, loc_type is
SQLBYTE.
Tip: The sqltypes.h header
file defines both SQLTEXT and SQLBYTE. Therefore, make sure that you
include sqltypes.h before you use these constants.
From the Informix®
ESQL/C program,
you can both select and insert simple-large-object data into loc_t host
variables. You can also select only portions of a simple-large-object
variable with subscripts on the simple-large-object column name. These
subscripts can be coded into the statement as shown in the following
example:
EXEC SQL declare catcurs cursor for
select catalog_num, cat_descr[1,10]
from catalog
where manu_code = 'HSK';
EXEC SQL open catcurs;
while (1)
{
EXEC SQL fetch catcurs into :cat_num, :cat_descr;
⋮
}
Subscripts can also be passed as input parameters as the
following code fragment shows:
EXEC SQL prepare slct_id from
'select catalog_num, cat_descr[?,?] from catalog \
where catalog_num = ?'
EXEC SQL execute slct_id into :cat_num, :cat_descr
using :n, :x, :cat_num;