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 / DYNAMIC.SQC < prev    next >
Encoding:
Text File  |  1994-02-28  |  1.2 KB  |  50 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <sqlenv.h>
  5. EXEC SQL INCLUDE SQLCA;
  6.  
  7. EXEC SQL BEGIN DECLARE SECTION;
  8.   char table_name[20] = "";
  9.   char st[80] = "";  /* :rk.1:erk. */
  10.   char parm_var[19] = "";
  11. EXEC SQL END DECLARE SECTION;
  12.  
  13. int main(void)
  14. {
  15.    printf( "\nSample C program: DYNAMIC " );
  16.    EXEC SQL CONNECT TO sample IN SHARE MODE;
  17.    if ( SQLCODE != 0 ) {
  18.       printf( "\nCONNECT TO Error:  SQLCODE = %ld", SQLCODE );
  19.       exit(1);
  20.    }
  21.  
  22.    EXEC SQL WHENEVER NOT FOUND GO TO ext;
  23.    EXEC SQL WHENEVER SQLERROR  GO TO error;
  24.  
  25.    strcpy( st, "SELECT name FROM sysibm.systables" );
  26.    strcat( st, " WHERE name <> ?" );
  27.    EXEC SQL PREPARE s1 FROM :st;  /* :rk.2:erk. */
  28.  
  29.    EXEC SQL DECLARE c1 CURSOR FOR s1;  /* :rk.3:erk. */
  30.  
  31.    strcpy( parm_var, "STAFF" );
  32.    EXEC SQL OPEN c1 USING :parm_var;  /* :rk.4:erk. */
  33.  
  34.    do {
  35.       EXEC SQL FETCH c1 INTO :table_name;  /* :rk.5:erk. */
  36.       printf( "\nTable = %s", table_name );
  37.    } while ( 1 );
  38.  
  39. error:
  40.    printf( "\nError:  SQLCODE = %ld", SQLCODE );
  41.  
  42. ext:
  43.    EXEC SQL WHENEVER SQLERROR CONTINUE;
  44.  
  45.    EXEC SQL CLOSE c1;  /* :rk.6:erk. */
  46.    EXEC SQL COMMIT;
  47.    EXEC SQL CONNECT RESET;
  48.    return 0;
  49. }
  50.