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) {
os_printf(DH_STRING_LITERAL("DEFINE\n"));
Create_CustomerMaster_Table(); Create_CustomerOrders_Table(); Create_OrderItems_Table(); Create_ItemMaster_Table(); EXEC SQL COMMIT WORK ; } /* * Create_CustomerMaster_Table() * * Create the CustomerMaster */ void Create_CustomerMaster_Table(void) {
/* define table CustomerMaster */ os_printf(DH_STRING_LITERAL("\ttable CustomerMaster\n"));
EXEC SQL CREATE TABLE custmast ( cm_custnumb CHAR(4), cm_custzipc CHAR(9), cm_custstat CHAR(2), cm_custrtng CHAR(1), cm_custname VARCHAR(47), cm_custaddr VARCHAR(47), cm_custcity VARCHAR(47) ); if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); EXEC SQL CREATE UNIQUE INDEX cm_custnumb_idx ON custmast (cm_custnumb) ; if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); } /* * Create_CustomerOrders_Table() * * Create the CustomerOrders */ void Create_CustomerOrders_Table(void) {
/* define table CustomerOrders */ os_printf(DH_STRING_LITERAL("\ttable CustomerOrders\n"));
EXEC SQL CREATE TABLE custordr ( co_ordrdate DATE, co_promdate DATE, co_ordrnumb CHAR(6), co_custnumb CHAR(4) ) ; if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); EXEC SQL CREATE UNIQUE INDEX co_ordrnumb_idx ON custordr (co_ordrnumb) ; if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); EXEC SQL CREATE INDEX co_custnumb_idx ON custordr (co_custnumb) ; if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); } /* * Create_OrderItems_Table() * * Create the OrderItems */ void Create_OrderItems_Table(void) {
/* define table OrderItems */ os_printf(DH_STRING_LITERAL("\ttable OrderItems\n"));
EXEC SQL CREATE TABLE ordritem ( oi_sequnumb SMALLINT, oi_quantity SMALLINT, oi_ordrnumb CHAR(6), oi_itemnumb CHAR(5) ) ; if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); EXEC SQL CREATE UNIQUE INDEX oi_ordrnumb_idx ON ordritem (oi_ordrnumb, oi_sequnumb) ; if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); EXEC SQL CREATE INDEX oi_itemnumb_idx ON ordritem (oi_itemnumb) ; if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); } /* * Create_ItemMaster_Table() * * Create the ItemMaster */ void Create_ItemMaster_Table(void) {
/* define table ItemMaster */ os_printf(DH_STRING_LITERAL("\ttable ItemMaster\n"));
EXEC SQL CREATE TABLE itemmast ( im_itemwght INTEGER, im_itempric MONEY, im_itemnumb CHAR(5), im_itemdesc VARCHAR(47) ) ; if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); EXEC SQL CREATE UNIQUE INDEX im_itemnumb_idx ON itemmast (im_itemnumb) ; if (sqlca.sqlcode) Handle_Error(sqlca.sqlcode, sqlca.sqlerrm); } |
|||