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;