// // Source File Name = static.sqC // // Licensed Materials - Property of IBM // // (C) COPYRIGHT International Business Machines Corp. 1995, 1997 // All Rights Reserved. // // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // // PURPOSE: This sample program demonstrates the use of static SQL. // It will output the entry in the FIRSTNME column where // the entry in the LASTNAME column equals "JOHNSON". // Otherwise, an error message is printed. // // An external function "check_error" is contained in the file "util.C" // which must be compiled along with this file. // // EXTERNAL DEPENDENCIES : // - Existing database for precompile purposes. // - Precompile with the SQL precompiler (PREP in DB2) // - Binding to a database (BIND in DB2) // - Compiling and linking with the IBM Cset++ compiler (AIX and OS/2) // or the Microsoft Visual C++ compiler (Windows) // or the compiler supported on your platform. // // For more information about these samples see the README file. // // For more information on programming in C++, see the // - "Programming in C and C++" section of the Application Development Guide // // For more information on building C++ applications, see the: // - "Building C++ Applications" section of the Application Building Guide. // // For more information on the SQL language see the SQL Reference. // #include <iostream.h> #include <stdlib.h> #include <string.h> #include "util.h" EXEC SQL INCLUDE SQLCA; /* :rk.1:erk. */ #define CHECKERR(CE_STR) if (check_error (CE_STR, &sqlca) != 0) class Static { public: Static (); Static (char *, char *); Select (); ~Static (); private: EXEC SQL BEGIN DECLARE SECTION; /* :rk.2:erk. */ char firstname[13]; char userid[9]; char passwd[19]; EXEC SQL END DECLARE SECTION; }; Static::Static () { cout << "Connect to default database with default userid and password\n"; EXEC SQL CONNECT TO sample; CHECKERR ("CONNECT TO sample") exit(1); } Static::Static (char *userid, char *passwd) { cout << "Connect to sample database with inputted userid and password\n"; EXEC SQL CONNECT TO sample USER :userid USING :passwd; CHECKERR ("CONNECT TO SAMPLE USING...") exit(1); } Static::Select () { EXEC SQL SELECT FIRSTNME INTO :firstname FROM employee WHERE LASTNAME = 'JOHNSON'; CHECKERR ("SELECT statement") return 1; cout << "First name = " << firstname << '\n'; return 0; } Static::~Static () { EXEC SQL CONNECT RESET; /* :rk.6:erk. */ CHECKERR ("CONNECT RESET") exit(1); } int main(int argc, char *argv[]) { cout << "Sample C program: STATIC\n"; if (argc == 3) { Static sampleStatic (argv[1], argv[2]); sampleStatic.Select(); } else if (argc == 1) { Static sampleStatic; sampleStatic.Select(); } else { cout << "\nUSAGE: static userid passwd\n\n"; } // end if return 0; } // end of program : static.sqC