Define
The Define() step is where specific data definitions are established by your application and/or process. This involves defining columns/fields and creating the tables/files with optional indices. Below is the code for Define(): /* * Define() * * Create the tables */ void Define(void) {
RETCODE rc; printf("DEFINE\n");
/* delete tables... */ Delete_Tables(); /* ...and re-create them with constraints */ Create_CustomerMaster_Table(); Create_ItemMaster_Table(); Create_CustomerOrders_Table(); Create_OrderItems_Table(); if ((rc = SQLExecDirect(hStmt, "COMMIT WORK", SQL_NTS)) != SQL_SUCCESS) Handle_Error(SQL_HANDLE_STMT, hStmt, "SQLExecDirect(COMMIT WORK)"); } /* * Create_CustomerMaster_Table() * * Create the table CustomerMaster */ void Create_CustomerMaster_Table(void) {
RETCODE rc; /* define table CustomerMaster */ printf("\ttable CustomerMaster\n");
if ((rc = SQLExecDirect(hStmt, "CREATE TABLE custmast ( \ cm_custnumb CHAR(4) PRIMARY KEY, \ cm_custzipc CHAR(9), \ cm_custstat CHAR(2), \ cm_custrtng CHAR(1), \ cm_custname VARCHAR(47), \ cm_custaddr VARCHAR(47), \ cm_custcity VARCHAR(47))", SQL_NTS)) != SQL_SUCCESS) Handle_Error(SQL_HANDLE_STMT, hStmt, "SQLExecDirect(CREATE TABLE)"); } /* * Create_CustomerOrders_Table() * * Create the table CustomerOrders */ void Create_CustomerOrders_Table(void) {
RETCODE rc; /* define table CustomerOrders */ printf("\ttable CustomerOrders\n");
if ((rc = SQLExecDirect(hStmt, "CREATE TABLE custordr ( \ co_ordrdate DATE, \ co_promdate DATE, \ co_ordrnumb CHAR(6) PRIMARY KEY, \ co_custnumb CHAR(4), \ FOREIGN KEY (co_custnumb) REFERENCES custmast)", SQL_NTS)) != SQL_SUCCESS) Handle_Error(SQL_HANDLE_STMT, hStmt, "SQLExecDirect(CREATE TABLE)"); } /* * Create_OrderItems_Table() * * Create the table OrderItems */ void Create_OrderItems_Table(void) {
RETCODE rc; /* define table OrderItems */ printf("\ttable OrderItems\n");
if ((rc = SQLExecDirect(hStmt, "CREATE TABLE ordritem ( \ oi_sequnumb SMALLINT, \ oi_quantity SMALLINT, \ oi_ordrnumb CHAR(6), \ oi_itemnumb CHAR(5), \ FOREIGN KEY (oi_itemnumb) REFERENCES itemmast, \ FOREIGN KEY (oi_ordrnumb) REFERENCES custordr)", SQL_NTS)) != SQL_SUCCESS) Handle_Error(SQL_HANDLE_STMT, hStmt, "SQLExecDirect(CREATE TABLE)"); } /* * Create_ItemMaster_Table() * * Create the table ItemMaster */ void Create_ItemMaster_Table(void) {
RETCODE rc; /* define table ItemMaster */ printf("\ttable ItemMaster\n");
if ((rc = SQLExecDirect(hStmt, "CREATE TABLE itemmast ( \ im_itemwght INTEGER, \ im_itempric MONEY, \ im_itemnumb CHAR(5) PRIMARY KEY, \ im_itemdesc VARCHAR(47))", SQL_NTS)) != SQL_SUCCESS) Handle_Error(SQL_HANDLE_STMT, hStmt, "SQLExecDirect(CREATE TABLE)"); } |
|||