HP NonStop SQL/MP Programming Manual page 224

For c
Table of Contents

Advertisement

Dynamic SQL Operations
1. Get the length of the output names buffer from
sqlsa.u.prepare.output_names_len.
2. Call the allocate_sqlda function to allocate memory for the output SQLDA and
the output names buffer, if needed.
3. Initialize the SQLDA header fields (SQLDA_EYE_CATCHER is defined by the
C compiler):
*output_sqlda_ptr.eye_catcher = SQLDA_EYE_CATCHER;
*output_sqlda_ptr.num_entries = sqlsa.output_num;
4. Run a DESCRIBE statement to access the output variables:
EXEC SQL DESCRIBE :STATEMENT_NAME
INTO :*output_sqlda_ptr
NAMES INTO :*output_namesbuf_ptr;
5. Loop through the sqlvar array in the output SQLDA. Loop n times, where n is the
number of columns from sqlsa.u.prepare.output_num. On each iteration of
the loop:
a. Check the data_type field. If necessary, adjust the data type so the C
program can handle and reset data_len accordingly.
b. Allocate memory equal to data_len for the output column.
c. Set var_ptr to point to the memory.
d. If you are not allocating memory dynamically, you would have declared a
variable for each possible column value and put the address of the variable in
var_ptr.
e. If you know the number and data type of the output column values, you set
only data_type, data_len, and var_ptr.
f.
Some programs might check data_type and data_len when the actual
values are obtained.
g. If you are handling null values, check the null_info field and continue
according to its value:
0
Do not allocate any memory.
-1
Allocate two bytes of memory for the indicator variable.
h. If necessary, set ind_ptr to point to the memory allocated in the previous
step. (If you are not allocating memory dynamically, define a variable for the
indicator and put its address in ind_ptr.)
6. To show column headings (similar to SQLCI), loop through the names buffer to
read the corresponding name for each column and display the column names.
HP NonStop SQL/MP Programming Manual for C—429847-008
10-26
Process the Output Variables

Advertisement

Table of Contents
loading

Table of Contents