HP NonStop SQL/MP Programming Manual page 239

For c
Table of Contents

Advertisement

Dynamic SQL Operations
Example 10-7. Basic Dynamic SQL Program (page 3 of 4)
122
/* set DATA_TYPE to long:
123
osqlda.sqlvar[0].data_type = _SQLDT_32BIT_U;
124
125
/* set data_len to 4 bytes; leave scale as 0 in
126
/* upper byte of data_len:
127
osqlda.sqlvar[0].data_len = 4;
128
129
/* set VAR_PTR to point to the address of the output value:*/
130
osqlda.sqlvar[0].var_ptr = (long)&average;
131
132
exec sql BEGIN WORK;
133
134
exec sql DECLARE c1 CURSOR FOR dyncmd;
135
exec sql OPEN c1;
136
exec sql FETCH c1 USING DESCRIPTOR :osqlda;
137
138
if (sqlcode >= 0)
139
printf("\nThe average salary is: %ld\n",average);
140
141
exec sql CLOSE c1;
142
143
exec sql COMMIT WORK;
144
145
} /* end of process_and_execute */
146
147
/* ------------------------------------------------------- */
148
149
void get_cmd( char *cmd )
150
/*
151
/* Assigns a SELECT statement to the statement buffer.
152
/* Gets the WHERE clause from the user and concatenates it */
153
/* to the SELECT statement.
154
/* */
155
156
{
157
char column[9];
158
int sel_index;
159
char predicate[10]; /* comparison predicate for WHERE
160
161
size_t len;
162
163
164
165
strcpy (cmd, "SELECT AVG(SALARY) FROM =EMPLOYEE WHERE ");
166
167
/* Create a simple menu:
168
printf("\nPlease enter:\n\n");
169
printf("1 -- to find average salary based on employee number\n");
170
printf("2 -- to find average salary based on job code\n");
171
printf("3 -- to find average salary based on department number\n\n");
172
173
fgets(temp, (int)sizeof(temp), stdin);
174
sscanf(temp, "%d", &sel_index);
175
176
/* Initialize column and predicate to blanks:
177
178
memset(column, ' ', 9);
179
180
memset(predicate, ' ', 10);
181
HP NonStop SQL/MP Programming Manual for C—429847-008
/* column to be used in WHERE clause */
/* selects column for WHERE clause
/* clause
/* for length of command, to use in
/* blanking out null terminator for
/* transmission to SQL
10-41
Basic Dynamic SQL Program
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/

Advertisement

Table of Contents
loading

Table of Contents