Use a pointer as a host variable if your program uses the
pointer to input data to an SQL statement.
For example, the following figure shows how you can associate a
cursor with a statement and insert values into a table. Figure 1: Declaring a
character pointer to input data
EXEC SQL BEGIN DECLARE SECTION;
char *s;
char *i;
EXEC SQL END DECLARE SECTION;
/* Code to allocate space for two pointers not shown */
s = "select * from cust_calls";
i = "NS";
⋮
EXEC SQL prepare x from :s;
EXEC SQL insert into state values (:i, 'New State');
The following figure shows how to use an integer pointer to input
data to an INSERT statement. Figure 2: Declaring an integer pointer to input data
EXEC SQL BEGIN DECLARE SECTION;
short *i;
int *o;
short *s;
EXEC SQL END DECLARE SECTION;
short i_num = 3;
int o_num = 1002;
short s_num = 8;
i = &i_num;
o = &o_num;
s = &s_num;
EXEC SQL connect to 'stores7';
EXEC SQL insert into items values (:*i, :*o, :*s, 'ANZ', 5, 125.00);
EXEC SQL disconnect current;
If you use a host variable that is a pointer to char to
receive data from a SELECT statement, you receive a compile-time warning
and your results might be truncated.