To make it easier to work with LONG columns, the C/C++ Precompiler offers the predefined data types SQLFILE and SQLLongDesc, as well as the GETVAL statement and the PUTVAL statement, for step-by-step processing of the columns.
However, you can also declare host variables for LONG columns as char arrays or VARCHAR data types.
EXEC SQL CREATE TABLE LONGTEST
(I1 INTEGER, L1 LONG BYTE, L2 LONG BYTE);
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR l1[1000], l2[50];
int i1, il1, il2;
EXEC SQL END DECLARE SECTION;
EXEC SQL INSERT INTO LONGTEST VALUES
(:i1, :l1 :il1, :l2 :il2);
Example for using a descriptor:
sqlvartype *actvar;
EXEC SQL BEGIN DECLARE SECTION;
char *insert = "INSERT INTO LONGTEST VALUES (:I1, :L1, :L2)";
EXEC SQL END DECLARE SECTION;
EXEC SQL PREPARE ins from :insert;
EXEC SQL DECLARE :C1 CURSOR FOR ins;
EXEC SQL DESCRIBE ins;
/* ... */
actvar = &sqlda.sqlvar[1];
(*actvar).hostvartype = sqlvchar;
/* ... */
EXEC SQL OPEN :C1 USING DESCRIPTOR;