dbcreate.h 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. /***************************************************************************
  2. * Licensed Materials - Property of IBM and/or HCL
  3. *
  4. * IBM Informix Client-SDK
  5. *
  6. * (C) Copyright IBM Corporation 2002 All rights reserved.
  7. * (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved.
  8. *
  9. *
  10. *
  11. *
  12. *
  13. * Title: dbCreate.h
  14. *
  15. * Description: Header file for dbCreate.c
  16. * Contains the arrays containg the SQL statements to
  17. * create the sample database and arrays of the data to
  18. * be loaded
  19. *
  20. ***************************************************************************
  21. */
  22. #define NUM_DBCREATE_STMTS 9
  23. #define NUM_INSERT_STMTS 3
  24. #define NUM_CUSTOMERS 9
  25. #define NUM_ITEMS 4
  26. #define NUM_ORDERS 9
  27. #define BUFFER_LEN 1000
  28. /*********************************************************************************
  29. **
  30. ** SQL STATEMENT BUFFERS
  31. **
  32. **********************************************************************************
  33. */
  34. /* SQL Statements for creating the sample database for UDO enabled
  35. ** database servers (version number > 9)
  36. */
  37. SQLCHAR createUdoDbStmts[NUM_DBCREATE_STMTS][BUFFER_LEN] =
  38. {"CREATE DATABASE odbc_demodb WITH LOG;",
  39. "GRANT connect TO public;",
  40. "GRANT dba TO public;",
  41. "DATABASE odbc_demodb;",
  42. "CREATE DISTINCT TYPE dollar AS decimal(5,2);",
  43. "CREATE TABLE xa_tab1(a int)",
  44. "CREATE TABLE customer (cust_num INTEGER PRIMARY KEY,\
  45. fname VARCHAR(10),\
  46. lname VARCHAR(10),\
  47. address ROW (address1 VARCHAR(20),\
  48. city VARCHAR(15),\
  49. state VARCHAR(5),\
  50. zip VARCHAR(6)),\
  51. contact_dates LIST (DATETIME YEAR TO DAY NOT NULL));",
  52. "CREATE TABLE item (item_num INTEGER PRIMARY KEY,\
  53. description VARCHAR(20),\
  54. stock SMALLINT,\
  55. ship_unit VARCHAR(10),\
  56. unit_price dollar,\
  57. advert CLOB);",
  58. "CREATE TABLE orders (order_num INTEGER PRIMARY KEY,\
  59. cust_num INTEGER,\
  60. item_num INTEGER,\
  61. order_date DATE,\
  62. quantity INTEGER,\
  63. FOREIGN KEY (cust_num) REFERENCES customer (cust_num),\
  64. FOREIGN KEY (item_num) REFERENCES item (item_num));"
  65. };
  66. /* SQL Statements for creating the sample database for non-UDO enabled
  67. ** database servers (version number < 9)
  68. */
  69. SQLCHAR createNonUdoDbStmts[NUM_DBCREATE_STMTS - 1][BUFFER_LEN] =
  70. {"CREATE DATABASE odbc_demodb WITH LOG;",
  71. "GRANT connect TO public;",
  72. "GRANT dba TO public;",
  73. "DATABASE odbc_demodb;",
  74. "CREATE TABLE xa_tab1(a int)",
  75. "CREATE TABLE customer (cust_num INTEGER PRIMARY KEY,\
  76. fname VARCHAR(10),\
  77. lname VARCHAR(10),\
  78. address1 VARCHAR(20),\
  79. city VARCHAR(15),\
  80. state VARCHAR(5),\
  81. zip VARCHAR(6),\
  82. first_contact DATETIME YEAR TO DAY,\
  83. last_contact DATETIME YEAR TO DAY);",
  84. "CREATE TABLE item (item_num INTEGER PRIMARY KEY,\
  85. description VARCHAR(20),\
  86. stock SMALLINT,\
  87. ship_unit VARCHAR(10),\
  88. unit_price DECIMAL(5,2),\
  89. advert VARCHAR(200));",
  90. "CREATE TABLE orders (order_num INTEGER PRIMARY KEY,\
  91. cust_num INTEGER,\
  92. item_num INTEGER,\
  93. order_date DATE,\
  94. quantity INTEGER,\
  95. FOREIGN KEY (cust_num) REFERENCES customer (cust_num),\
  96. FOREIGN KEY (item_num) REFERENCES item (item_num));"
  97. };
  98. /* SQL Statements for inserting data into the sample database
  99. */
  100. SQLCHAR insertDBStmts[NUM_INSERT_STMTS][BUFFER_LEN] =
  101. {"INSERT INTO customer VALUES ",
  102. "INSERT INTO item VALUES ",
  103. "INSERT INTO orders VALUES "};
  104. /*********************************************************************************
  105. **
  106. ** DATA BUFFERS -- table 'CUSTOMER'
  107. **
  108. **********************************************************************************
  109. */
  110. /* Array containing values to be inserted into the 'customer' table for UDO
  111. ** enabled database servers (version number > 9)
  112. */
  113. SQLCHAR udoCust[NUM_CUSTOMERS][BUFFER_LEN] =
  114. {"(101,'Ludwig','Pauli',ROW('213 Erstwild Court','Sunnyvale','CA','94086'),LIST{'1994-08-16'})",
  115. "(102,'Carole','Sadler',ROW('785 Geary Street','San Francisco','CA','94117'),LIST{'1991-06-20','1993-07-17'})",
  116. "(103,'Philip','Currie',ROW('P.O. Box 3498','Palo Alto','CA','94303'),LIST{'1993-08-02','1993-08-20'})",
  117. "(104,'Anthony','Higgins',ROW('422 Bay Road','Redwood City','CA','94026'),LIST{'1994-02-08','1994-05-12'})",
  118. "(105,'Raymond','Vector',ROW('1899 La Loma Drive','Los Altos','CA','94022'),LIST{'1992-10-30','1994-03-22'})",
  119. "(106,'George','Watson',ROW('1143 Carver Place','Mountain View','CA','94063'),LIST{'1993-11-04'})",
  120. "(107,'Charles','Ream',ROW('41 Jordan Avenue','Palo Alto','CA','94304'),LIST{'1991-03-18','1993-04-26'})",
  121. "(108,'Donald','Quinn',ROW('587 Alvarado','Redwood City','CA','94063'),LIST{'1991-11-13','1994-01-06'})",
  122. "(109,'Jane','Miller',ROW('735 Maude Avenue','Sunnyvale','CA','94086'),LIST{'1993-11-17','1994-05-08'})"};
  123. /* Array containing values to be inserted into the 'customer' table for non-UDO
  124. ** enabled database servers (version number < 9)
  125. */
  126. SQLCHAR nonUdoCust[NUM_CUSTOMERS][BUFFER_LEN] =
  127. {"(101,'Ludwig','Pauli','213 Erstwild Court','Sunnyvale','CA','94086','1994-08-16','')",
  128. "(102,'Carole','Sadler','785 Geary Street','San Francisco','CA','94117','1991-06-20','1993-07-17')",
  129. "(103,'Philip','Currie','P.O. Box 3498','Palo Alto','CA','94303','1993-08-02','1993-08-20')",
  130. "(104,'Anthony','Higgins','422 Bay Road','Redwood City','CA','94026','1994-02-08','1994-05-12')",
  131. "(105,'Raymond','Vector','1899 La Loma Drive','Los Altos','CA','94022','1992-10-30','1994-03-22')",
  132. "(106,'George','Watson','1143 Carver Place','Mountain View','CA','94063','1993-11-04', '')",
  133. "(107,'Charles','Ream','41 Jordan Avenue','Palo Alto','CA','94304','1991-03-18','1993-04-26')",
  134. "(108,'Donald','Quinn','587 Alvarado','Redwood City','CA','94063','1991-11-13','1994-01-06')",
  135. "(109,'Jane','Miller','735 Maude Avenue','Sunnyvale','CA','94086','1993-11-17','1994-05-08')"};
  136. /*********************************************************************************
  137. **
  138. ** DATA BUFFERS -- table 'ITEM'
  139. **
  140. **********************************************************************************
  141. */
  142. /* Array containing values to be inserted into the 'item' table for UDO
  143. ** enabled database servers (version number > 9)
  144. */
  145. SQLCHAR udoItem[NUM_ITEMS][BUFFER_LEN] =
  146. {"(1001,'Running shoes',250,'Pair','170.00',FILETOCLOB('item_1.txt','client'))",
  147. "(1002,'Bicycle chain',200,'Each','95.00',FILETOCLOB('item_2.txt','client'))",
  148. "(1003,'Golf balls',500,'Box of 6','49.50',FILETOCLOB('item_3.txt','client'))",
  149. "(1004,'Baseball glove',100,'Each','50.00',FILETOCLOB('item_4.txt','client'))"};
  150. /* Array containing values to be inserted into the 'item' table for non-UDO
  151. ** enabled database servers (version number < 9)
  152. */
  153. SQLCHAR nonUdoItem[NUM_ITEMS][BUFFER_LEN] =
  154. {"(1001,'Running shoes',250,'Pair','170.00',\
  155. 'Super shock-absorbing gel pads disperse vertical energy into a horizontal plane\
  156. for extraordinary cushioned comfort. Great motion control. Mens only. Specify size.')",
  157. "(1002,'Bicycle chain',200,'Each','95.00',\
  158. 'Double or triple crankset with choice of chainrings. For double crankset, chainrings\
  159. from 38-54 teeth. For triple crankset, chainrings from 24-48 teeth.')",
  160. "(1003,'Golf balls',500,'Box of 6','49.50',\
  161. 'Long drive. Fluorescent yellow.')",
  162. "(1004,'Baseball glove',100,'Each','60.00',\
  163. 'Brown leather. Specify baseman or infield/outfield style. Specify right- or left-handed.')"};
  164. /*********************************************************************************
  165. **
  166. ** DATA BUFFERS -- table 'ORDERS'
  167. **
  168. **********************************************************************************
  169. */
  170. /* Array containing values to be inserted into the 'orders' table
  171. ** (same for UDO or non-UDO enabled databases)
  172. */
  173. SQLCHAR orders[NUM_ORDERS][BUFFER_LEN] =
  174. {"(1,104,1001,{d '1999-01-23'},3)",
  175. "(2,105,1001,{d '1998-12-30'},5)",
  176. "(3,101,1004,{d '1999-02-02'},11)",
  177. "(4,101,1002,{d '1998-11-26'},1)",
  178. "(5,102,1003,{d '1999-01-16'},12)",
  179. "(6,107,1004,{d '1998-12-27'},12)",
  180. "(7,107,1001,{d '1999-01-05'},2)",
  181. "(8,108,1004,{d '1999-01-23'},5)",
  182. "(9,106,1003,{d '1999-01-06'},8)"};