// // Source File Name = static.sqC // // Licensed Materials - Property of IBM // // (C) COPYRIGHT International Business Machines Corp. 1995, 2000 // 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 <sqlca.h> #include "utilemb.h" EXEC SQL INCLUDE SQLCA; class Static { public: Static (); Static (char *, char *); Select (); ~Static (); private: EXEC SQL BEGIN DECLARE SECTION; char firstname[13]; char userid[9]; char passwd[19]; EXEC SQL END DECLARE SECTION; }; Static::Static () { cout << "Connecting to database SAMPLE... \n"; EXEC SQL CONNECT TO sample; EMB_SQL_CHECK("CONNECT TO SAMPLE") ; cout << "Connected to database SAMPLE \n"; } Static::Static (char *user, char *pass) { strcpy(userid,user); strcpy(passwd,pass); cout << "Connecting to database SAMPLE... \n"; EXEC SQL CONNECT TO sample USER :userid USING :passwd; EMB_SQL_CHECK("CONNECT TO SAMPLE") ; cout << "Connected to database SAMPLE \n"; } Static::Select () { EXEC SQL SELECT FIRSTNME INTO :firstname FROM employee WHERE LASTNAME = 'JOHNSON'; EMB_SQL_CHECK("SELECT statement") ; cout << "First name = " << firstname << '\n'; return 0; } Static::~Static () { EXEC SQL CONNECT RESET; EMB_SQL_CHECK("CONNECT RESET") ; } int main(int argc, char *argv[]) { cout << "Sample C program: STATIC\n"; if (argc == 1) { Static sampleStatic; sampleStatic.Select(); } else if (argc == 3) { Static sampleStatic (argv[1], argv[2]); sampleStatic.Select(); } else { cout << "\nUSAGE: static userid passwd\n\n"; } // end if return 0; } // end of program : static.sqC