HP NonStop SQL/MP Programming Manual page 247

For c
Table of Contents

Advertisement

Dynamic SQL Operations
Example 10-8. Detailed Dynamic SQL Program (page 6 of 22)
300
/* *************************************************** */
301
/* FUNCTION request_invars
302
/* This function accepts the input sqlda and the
303
/* input names buffer as parameters and requests the
304
/* input values for the needed input parameters
305
/*
306
/* Return: 0 if successful
307
/* -1 if failure
308
/*
309
/* *************************************************** */
310
311
int request_invars ( sqldaptr sqlda, /* ptr to input sqlda
312
313
314
{ /* begin request_invars */
315
316
short *len_ptr;
317
318
319
320
short name_len;
321
short num_entries;
322
short i;
323
324
#define data_array_size 21
325
char data_array[data_array_size];
326
327
328
329
short data_len;
330
short data_read;
331
char name_array[31];
332
333
334
335
char *lastchar;
336
char *dummy;
337
338
num_entries = sqlda->num_entries;
339
printf( "\nPlease provide data for input params \n");
340
printf( "------------------------------------ \n\n");
341
fflush( stdout);
342
343
for (i=0; i < num_entries; i++)
344
{
345
len_ptr = (short *) nb; /* get to length prefix
346
name_len = *len_ptr;
347
nb += 2;
348
349
350
/* sanity check */
351
if (name_len > 30)
352
{ printf("**** Error: Param name is too long. Try again.\n");
353
354
355
}
356
357
/* get null terminated param name in name_array */
358
if (name_len == 0)
359
360
else
361
{
HP NonStop SQL/MP Programming Manual for C—429847-008
char *nb )
fflush( stdout );
return (-1);
name_array[0] = '\0'; /* unnamed param */
/* ptr to names buffer */
/* int ptr to get the length
/* from the names buffer
/* and write len prefix to
/* varchar data buffers
/* num bytes in a name
/* number of sqlvar entries
/* loop index
/* buffer to get numeric data */
/* max 19 digits + sign byte
/* + null terminator
/* #bytes of input data needed*/
/* #bytes of input read
/* buffer to contain null
/* terminated name of the
/* input param (without the
/* leading '?' )
/* advance nb to skip the */
/* 2-byte length prefix
10-49
Detailed Dynamic SQL Program
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/

Advertisement

Table of Contents
loading

Table of Contents