/******************************************************************************* ** ** Source File Name = ebcdicdb.c ** ** Licensed Materials - Property of IBM ** ** (C) COPYRIGHT International Business Machines Corp. 1999, 2000 ** All Rights Reserved. ** ** US Government Users Restricted Rights - Use, duplication or ** disclosure restricted by GSA ADP Schedule Contract with IBM Corp. ** ** ** PURPOSE : ** This program is an example of how APIs are implemented in order to ** CREATE a DATABASE with the EBCDIC 037 standard collating sequence, ** then DROP the DATABASE. ** ** A user-defined collating sequence allows the user to specify the ** collating behavieour of the database. This can be used by ** applications that require compatibility to the collating ** behaviour of host database products. For example, simulating ** the collating behaviour of DB2/MVS CCSID 500 (EBCDIC International) ** can be achived by specifying a colating sequence that maps ** codepage 819 characters to CCSID 500 characters when the ** database is created. ** ** APIs USED : ** INSTANCE ATTACH sqleatin() ** CREATE DATABASE sqlecrea() ** DROP DATABASE sqledrpd() ** ** STRUCTURES USED : ** sqlca ** sqledbdesc ** sqledbcountryinfo ** ** OTHER FUNCTIONS USED : ** 'C' COMPILER LIBRARY : ** stdio.h - printf ** ** external : ** check_error : Checks for SQLCODE error, and prints out any ** [in UTIL.C] related information available. ** This procedure is located in the UTIL.C file. ** ** ** EXTERNAL DEPENDENCIES : ** - 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. ** - a database by the name of "DBUDCS" does not exist. ** ** 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 <stdio.h> #include <stdlib.h> #include <string.h> #include <sqle850b.h> /* Definition of the collating sequence */ #include <sqlutil.h> #include <sqlenv.h> #include "utilapi.h" int main (int argc, char* argv[]) { struct sqlca sqlca; struct sqledbdesc db_desc; struct sqledbcountryinfo dbCountryInfo; char userid[9]; char passwd[19]; char nodename[9]; strcpy(db_desc.sqldbdid, SQLE_DBDESC_2); db_desc.sqldbccp = 0; db_desc.sqldbcss = SQL_CS_USER; memcpy(db_desc.sqldbudc, sqle_850_037, SQL_CS_SZ); strcpy(db_desc.sqldbcmt, "EBCDIC"); db_desc.sqldbsgp = 0; db_desc.sqldbnsg = 10; db_desc.sqltsext = -1; db_desc.sqlcatts = NULL; db_desc.sqlusrts = NULL; db_desc.sqltmpts = NULL; if (argc == 4) { strcpy (userid, argv[1]); strcpy (passwd, argv[2]); strcpy (nodename, argv[3]); /*************************/ /* ATTACH API called */ /*************************/ sqleatin (nodename, userid, passwd, &sqlca); } else if (argc != 1) { printf("USAGE: ebcdicdb [userid password remote_nodename]\n"); return 1; } strcpy(dbCountryInfo.sqldbcodeset, "IBM-850"); strcpy(dbCountryInfo.sqldblocale, "C"); printf ("CREATing the temporary database DBEBCDIC...\n"); printf ("please wait... this will take a while...\n"); /****************************\ * CREATE DATABASE API called * \****************************/ sqlecrea( "DBEBCDIC", "DBEBCDIC", "", &db_desc, &dbCountryInfo, '\0', NULL, &sqlca ) ; API_SQL_CHECK("creating the database"); printf ("database DBEBCDIC with the EBCDIC 037 standard\n"); printf ("collating sequence created successfully.\n"); printf ("DROPping the database DBEBCDIC\n"); /**************************\ * DROP DATABASE API called * \**************************/ sqledrpd ("DBEBCDIC", &sqlca); API_SQL_CHECK("dropping the database"); return 0; }