SQL Programming Manual for Pascal
Examples of Dynamic NonStop SQL Programs
HP NonStop SQL Programming Manual for Pascal—528614-001
C-4
Simple Dynamic SQL Program
19 0 PREPARE_TYPE = RECORD
20 1 input_num : INTEGER;
21 1 input_names_len : INTEGER;
22 1 output_num : INTEGER;
23 1 output_names_len : INTEGER;
24 1 name_map_len : INTEGER;
25 1 sql_statement_type : INTEGER;
26 1 END;
27 0
28 0 SQLSA_TYPE = RECORD
29 1 eye_catcher : FSTRING(2);
30 1 version : INTEGER;
31 1 CASE INTEGER OF
32 1 1: (dml : DML_TYPE);
33 1 2: (prepare : PREPARE_TYPE);
34 1 END;
35 0 VAR
36 0 sqlsa : SQLSA_TYPE;
35 0
36 0 { The program will have only one output column, SALARY. Since }
37 0 { we will be generating its average, we do not need to print }
38 0 { the column name; we can therefore omit declaring a names }
39 0 { buffer. We do not plan to allocate memory dynamically, so we}
40 0 { use the INCLUDE SQLDA statement, specifying one output }
41 0 { variable for our output SQLDA. }
42 0 EXEC SQL INCLUDE SQLDA(OSQLDA,1);
1 0 CONST
2 0 SQLDA_EYE_CATCHER = 'D1';
3 0 TYPE
4 0 SQLVAR_TYPE = RECORD
5 1 data_type : INTEGER;
6 1 ( CASE INTEGER OF
7 1 1: (data_len : INTEGER);
8 1 (* fields for numbers *)
9 1 2: (scale : BYTE;
10 1 nlen : BYTE);
11 1 (* fields for DATETIME or INTERVAL *)
12 1 3: (dt_qualifier : BYTE;
13 1 dt_len : BYTE) );
14 1 ( CASE INTEGER OF
15 1 1: (precision : INTEGER);
16 1 (* fields for DATETIME or INTERVAL *)
17 1 2: (lead_field_precision : BYTE;
18 1 fraction_precision : BYTE) );
19 1 null_info : INTEGER;
20 1 var_ptr : EXTADDR;
21 1 ind_ptr : EXTADDR;
22 1 reserved : INT64;
23 1 END;
24 0
25 0 SQLDA_TYPE = RECORD
26 1 eye_catcher : FSTRING(2);
27 1 num_entries : INTEGER;
28 1 sqlvar : ARRAY [1..1] OF SQLVAR_TYPE;
29 1 END;
30 0
31 0 VAR
32 0 OSQLDA : SQLDA_TYPE;
33 0
43 0