EasyManua.ls Logo

HP NonStop SQL/MP - Page 248

HP NonStop SQL/MP
331 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Dynamic SQL Operations
HP NonStop SQL/MP Programming Manual for C429847-008
10-50
Detailed Dynamic SQL Program
362 lastchar = nb + (name_len - 1);
363 if ( *lastchar == ' ')
364 { strncpy( name_array, nb, name_len - 1);
365 name_array[name_len -1] = '\0';
366 }
367 else
368 { strncpy( name_array, nb, name_len);
369 name_array[name_len] = '\0';
370 }
371 /* advance nb to the next name */
372 nb = lastchar + 1;
373 }
374
375
376 /* ------------------------------------------------ */
377 /* Request input data depending on data type */
378 /* ------------------------------------------------ */
379
380 switch (sqlda->sqlvar[i].data_type) {
381 /* ------------------------------------------------ */
382 case _SQLDT_ASCII_F : /* CHAR data type */
383
384 in_out_ptrs.char_ptr = (char *) sqlda->sqlvar[i].var_ptr;
385 data_len = sqlda->sqlvar[i].data_len;
386
387 if (name_len > 0)
388 printf("Please enter max %d characters for ?%s: ",
389 data_len, name_array);
390 else
391 printf("Please enter max %d characters: ",
392 data_len);
393
394 if ( get_string( in_out_ptrs.char_ptr, data_len,
395 0, PARAM_TERMINATOR ) < 0 )
396 { /* input info too long */
397 printf("\n**** Error: Input data is too long.\n");
398 fflush(stdout);
399 return (-1);
400 }
401
402 break;
403
404 /* ------------------------------------------------- */
405 case _SQLDT_ASCII_V : /* VARCHAR data type */
406
407 in_out_ptrs.char_ptr = (char *) (sqlda->sqlvar[i].var_ptr + 2);
408 data_len = sqlda->sqlvar[i].data_len;
409
410 if (name_len > 0)
411 printf("Please enter max %d characters for ?%s: ",
412 data_len, name_array);
413 else
414 printf("Please enter max %d characters: ",
415 data_len);
416
417 if ( ( data_read = get_string( in_out_ptrs.char_ptr, data_len,
418 0, PARAM_TERMINATOR )) < 0 )
419 { /* input info too long; or some problem */
420 printf("\n**** Error: Input data is too long.\n");
421 fflush(stdout);
422 return (-1);
423 }
424
Example 10-8. Detailed Dynamic SQL Program (page 7 of 22)

Table of Contents

Related product manuals