home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0210 - 0219 / ibm0210-0219 / ibm0213.tar / ibm0213 / 7025PWA1.ZIP / SAMPLES.ZIP / SQLLIB / SAMPLES / C / INPSRV.SQC < prev    next >
Encoding:
Text File  |  1994-02-28  |  1.6 KB  |  47 lines

  1. #include <memory.h> 
  2. #include <string.h> 
  3.  
  4. #include <sqlenv.h>    /* defines SQLZ_DISCONNECT_PROC     */ 
  5. #include <sqlutil.h>   /* defines sqlchar structure        */ 
  6.  
  7. EXEC SQL INCLUDE SQLCA;      /* defines/declares sqlca structure */ 
  8. EXEC SQL INCLUDE SQLDA;      /* defines sqlda structure          */ 
  9.  
  10. EXEC SQL BEGIN DECLARE SECTION; 
  11.   char table_stmt[80]  = "CREATE TABLE "; 
  12.   char insert_stmt[80] = "INSERT INTO "; 
  13.   char insert_data[21]; 
  14. EXEC SQL END DECLARE SECTION; 
  15.  
  16. SQL_API_RC SQL_API_FN INPSRV(struct sqlchar *vardata,      /* table name   */  /* :rk.1:erk. */ 
  17.                              struct sqlda   *input_sqlda,  /* table data   */ 
  18.                              struct sqlda   *output_sqlda, /* not used     */ 
  19.                              struct sqlca   *sqlcaptr)     /* output sqlca */ 
  20.    int  cntr = 0; 
  21.  
  22.    EXEC SQL WHENEVER SQLERROR GOTO error_exit; 
  23.  
  24.    strcat(table_stmt, vardata->data); 
  25.    strcat(table_stmt, " (name CHAR(20))");  /* :rk.2:erk. */ 
  26.    EXEC SQL EXECUTE IMMEDIATE :table_stmt; 
  27.  
  28.    strcat(insert_stmt, vardata->data); 
  29.    strcat(insert_stmt, "  VALUES (?)");  /* :rk.3:erk. */ 
  30.    EXEC SQL PREPARE INSERT_NAME FROM :insert_stmt; 
  31.  
  32.    for (cntr = 0; cntr < input_sqlda->sqld; cntr++) { 
  33.       strcpy(insert_data, input_sqlda->sqlvar[cntr].sqldata); 
  34.       EXEC SQL EXECUTE INSERT_NAME USING :insert_data;  /* :rk.4:erk. */ 
  35.    } 
  36.  
  37. error_exit:  /* :rk.5:erk. */ 
  38.    memcpy(sqlcaptr, &sqlca, sizeof(struct sqlca)); 
  39.    EXEC SQL WHENEVER SQLERROR CONTINUE; 
  40.    if (SQLCODE == 0) 
  41.      EXEC SQL COMMIT; 
  42.    else 
  43.      EXEC SQL ROLLBACK; 
  44.    return(SQLZ_DISCONNECT_PROC); 
  45.