isqlext.h
上传用户:canger333
上传日期:2013-01-31
资源大小:454k
文件大小:32k
源码类别:

Oracle数据库

开发平台:

Unix_Linux

  1. #ifndef _INTRINSIC_SQLEXT_H
  2. # define _INTRINSIC_SQLEXT_H
  3. #include <isql.h>
  4. /*
  5.  *  Generic constants
  6.  */
  7. #define SQL_MAX_OPTION_STRING_LENGTH 256
  8. /*
  9.  *  Additional return codes
  10.  */
  11. #define SQL_STILL_EXECUTING  2
  12. #define SQL_NEED_DATA 99
  13. /*
  14.  *  SQL extended datatypes
  15.  */
  16. #define SQL_DATE 9
  17. #define SQL_TIME 10
  18. #define SQL_TIMESTAMP 11
  19. #define SQL_LONGVARCHAR   (-1)
  20. #define SQL_BINARY (-2)
  21. #define SQL_VARBINARY (-3)
  22. #define SQL_LONGVARBINARY (-4)
  23. #define SQL_BIGINT (-5)
  24. #define SQL_TINYINT  (-6)
  25. #define SQL_BIT  (-7)
  26. #define SQL_INTERVAL_YEAR (-80)
  27. #define SQL_INTERVAL_MONTH (-81)
  28. #define SQL_INTERVAL_YEAR_TO_MONTH (-82)
  29. #define SQL_INTERVAL_DAY (-83)
  30. #define SQL_INTERVAL_HOUR (-84)
  31. #define SQL_INTERVAL_MINUTE (-85)
  32. #define SQL_INTERVAL_SECOND (-86)
  33. #define SQL_INTERVAL_DAY_TO_HOUR (-87)
  34. #define SQL_INTERVAL_DAY_TO_MINUTE (-88)
  35. #define SQL_INTERVAL_DAY_TO_SECOND (-89)
  36. #define SQL_INTERVAL_HOUR_TO_MINUTE (-90)
  37. #define SQL_INTERVAL_HOUR_TO_SECOND (-91)
  38. #define SQL_INTERVAL_MINUTE_TO_SECOND (-92)
  39. #define SQL_UNICODE (-95)
  40. #define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR
  41. #define SQL_TYPE_DRIVER_END SQL_UNICODE
  42. #define SQL_SIGNED_OFFSET (-20)
  43. #define SQL_UNSIGNED_OFFSET (-22)
  44. /*
  45.  *  C datatype to SQL datatype mapping
  46.  */
  47. #define SQL_C_DATE SQL_DATE
  48. #define SQL_C_TIME SQL_TIME
  49. #define SQL_C_TIMESTAMP  SQL_TIMESTAMP
  50. #define SQL_C_BINARY SQL_BINARY
  51. #define SQL_C_BIT SQL_BIT
  52. #define SQL_C_TINYINT SQL_TINYINT
  53. #define SQL_C_SLONG  SQL_C_LONG+SQL_SIGNED_OFFSET
  54. #define SQL_C_SSHORT SQL_C_SHORT+SQL_SIGNED_OFFSET
  55. #define SQL_C_STINYINT SQL_TINYINT+SQL_SIGNED_OFFSET
  56. #define SQL_C_ULONG  SQL_C_LONG+SQL_UNSIGNED_OFFSET
  57. #define SQL_C_USHORT SQL_C_SHORT+SQL_UNSIGNED_OFFSET
  58. #define SQL_C_UTINYINT SQL_TINYINT+SQL_UNSIGNED_OFFSET
  59. #define SQL_C_BOOKMARK SQL_C_ULONG
  60. /*
  61.  *  Extended data types override sql.h defined
  62.  */
  63. #undef SQL_TYPE_MIN
  64. #define SQL_TYPE_MIN SQL_BIT
  65. #define SQL_ALL_TYPES 0
  66. /*
  67.  *  SQL portable types for C - DATE, TIME, TIMESTAMP
  68.  */
  69. typedef struct _DATE_STRUCT
  70.   {
  71.     SWORD year;
  72.     UWORD month;
  73.     UWORD day;
  74.   }
  75. DATE_STRUCT;
  76. typedef struct _TIME_STRUCT
  77.   {
  78.     UWORD hour;
  79.     UWORD minute;
  80.     UWORD second;
  81.   }
  82. TIME_STRUCT;
  83. typedef struct _TIMESTAMP_STRUCT
  84.   {
  85.     SWORD year;
  86.     UWORD month;
  87.     UWORD day;
  88.     UWORD hour;
  89.     UWORD minute;
  90.     UWORD second;
  91.     UDWORD fraction;
  92.   }
  93. TIMESTAMP_STRUCT;
  94. typedef unsigned long int BOOKMARK;
  95. /*
  96.  * ----------------------------------------------------------------------
  97.  *  Level 1 Functions
  98.  * ----------------------------------------------------------------------
  99.  */
  100. /*
  101.  *  SQLDriverConnect
  102.  */
  103. #define SQL_DRIVER_NOPROMPT  0
  104. #define SQL_DRIVER_COMPLETE  1
  105. #define SQL_DRIVER_PROMPT 2
  106. #define SQL_DRIVER_COMPLETE_REQUIRED 3
  107. /*
  108.  *  SQLGetData
  109.  */
  110. #define SQL_NO_TOTAL (-4)
  111. /*
  112.  *  SQLBindParameter
  113.  */
  114. #define SQL_DEFAULT_PARAM (-5)
  115. #define SQL_IGNORE (-6)
  116. #define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
  117. #define SQL_LEN_DATA_AT_EXEC(length)  (-length+SQL_LEN_DATA_AT_EXEC_OFFSET)
  118. /*
  119.  *  SQLGetFunctions
  120.  */
  121. #define SQL_API_SQLALLOCCONNECT 1 /* Core Functions */
  122. #define SQL_API_SQLALLOCENV 2
  123. #define SQL_API_SQLALLOCSTMT 3
  124. #define SQL_API_SQLBINDCOL 4
  125. #define SQL_API_SQLCANCEL 5
  126. #define SQL_API_SQLCOLATTRIBUTES 6
  127. #define SQL_API_SQLCONNECT 7
  128. #define SQL_API_SQLDESCRIBECOL 8
  129. #define SQL_API_SQLDISCONNECT 9
  130. #define SQL_API_SQLERROR 10
  131. #define SQL_API_SQLEXECDIRECT 11
  132. #define SQL_API_SQLEXECUTE 12
  133. #define SQL_API_SQLFETCH 13
  134. #define SQL_API_SQLFREECONNECT 14
  135. #define SQL_API_SQLFREEENV 15
  136. #define SQL_API_SQLFREESTMT 16
  137. #define SQL_API_SQLGETCURSORNAME 17
  138. #define SQL_API_SQLNUMRESULTCOLS 18
  139. #define SQL_API_SQLPREPARE 19
  140. #define SQL_API_SQLROWCOUNT 20
  141. #define SQL_API_SQLSETCURSORNAME 21
  142. #define SQL_API_SQLSETPARAM 22
  143. #define SQL_API_SQLTRANSACT 23
  144. #define SQL_NUM_FUNCTIONS 23
  145. #define SQL_EXT_API_START 40
  146. #define SQL_API_SQLCOLUMNS 40 /* Level 1 Functions */
  147. #define SQL_API_SQLDRIVERCONNECT 41
  148. #define SQL_API_SQLGETCONNECTOPTION  42
  149. #define SQL_API_SQLGETDATA 43
  150. #define SQL_API_SQLGETFUNCTIONS 44
  151. #define SQL_API_SQLGETINFO 45
  152. #define SQL_API_SQLGETSTMTOPTION 46
  153. #define SQL_API_SQLGETTYPEINFO 47
  154. #define SQL_API_SQLPARAMDATA 48
  155. #define SQL_API_SQLPUTDATA 49
  156. #define SQL_API_SQLSETCONNECTOPTION  50
  157. #define SQL_API_SQLSETSTMTOPTION 51
  158. #define SQL_API_SQLSPECIALCOLUMNS 52
  159. #define SQL_API_SQLSTATISTICS 53
  160. #define SQL_API_SQLTABLES 54
  161. #define SQL_API_SQLBROWSECONNECT 55 /* Level 2 Functions */
  162. #define SQL_API_SQLCOLUMNPRIVILEGES  56
  163. #define SQL_API_SQLDATASOURCES 57
  164. #define SQL_API_SQLDESCRIBEPARAM 58
  165. #define SQL_API_SQLEXTENDEDFETCH 59
  166. #define SQL_API_SQLFOREIGNKEYS 60
  167. #define SQL_API_SQLMORERESULTS 61
  168. #define SQL_API_SQLNATIVESQL 62
  169. #define SQL_API_SQLNUMPARAMS 63
  170. #define SQL_API_SQLPARAMOPTIONS 64
  171. #define SQL_API_SQLPRIMARYKEYS 65
  172. #define SQL_API_SQLPROCEDURECOLUMNS  66
  173. #define SQL_API_SQLPROCEDURES 67
  174. #define SQL_API_SQLSETPOS 68
  175. #define SQL_API_SQLSETSCROLLOPTIONS  69
  176. #define SQL_API_SQLTABLEPRIVILEGES 70
  177. #define SQL_API_SQLDRIVERS 71
  178. #define SQL_API_SQLBINDPARAMETER 72
  179. #define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER
  180. #define SQL_API_ALL_FUNCTIONS 0
  181. #define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
  182. /*
  183.  *  SQLGetInfo
  184.  */
  185. #define SQL_INFO_FIRST 0
  186. #define SQL_ACTIVE_CONNECTIONS 0
  187. #define SQL_ACTIVE_STATEMENTS 1
  188. #define SQL_DATA_SOURCE_NAME 2
  189. #define SQL_DRIVER_HDBC 3
  190. #define SQL_DRIVER_HENV 4
  191. #define SQL_DRIVER_HSTMT 5
  192. #define SQL_DRIVER_NAME 6
  193. #define SQL_DRIVER_VER 7
  194. #define SQL_FETCH_DIRECTION 8
  195. #define SQL_ODBC_API_CONFORMANCE 9
  196. #define SQL_ODBC_VER 10
  197. #define SQL_ROW_UPDATES 11
  198. #define SQL_ODBC_SAG_CLI_CONFORMANCE 12
  199. #define SQL_SERVER_NAME 13
  200. #define SQL_SEARCH_PATTERN_ESCAPE 14
  201. #define SQL_ODBC_SQL_CONFORMANCE 15
  202. #define SQL_DBMS_NAME 17
  203. #define SQL_DBMS_VER 18
  204. #define SQL_ACCESSIBLE_TABLES 19
  205. #define SQL_ACCESSIBLE_PROCEDURES 20
  206. #define SQL_PROCEDURES 21
  207. #define SQL_CONCAT_NULL_BEHAVIOR 22
  208. #define SQL_CURSOR_COMMIT_BEHAVIOR 23
  209. #define SQL_CURSOR_ROLLBACK_BEHAVIOR 24
  210. #define SQL_DATA_SOURCE_READ_ONLY 25
  211. #define SQL_DEFAULT_TXN_ISOLATION 26
  212. #define SQL_EXPRESSIONS_IN_ORDERBY 27
  213. #define SQL_IDENTIFIER_CASE 28
  214. #define SQL_IDENTIFIER_QUOTE_CHAR 29
  215. #define SQL_MAX_COLUMN_NAME_LEN 30
  216. #define SQL_MAX_CURSOR_NAME_LEN 31
  217. #define SQL_MAX_OWNER_NAME_LEN 32
  218. #define SQL_MAX_PROCEDURE_NAME_LEN 33
  219. #define SQL_MAX_QUALIFIER_NAME_LEN 34
  220. #define SQL_MAX_TABLE_NAME_LEN 35
  221. #define SQL_MULT_RESULT_SETS 36
  222. #define SQL_MULTIPLE_ACTIVE_TXN 37
  223. #define SQL_OUTER_JOINS 38
  224. #define SQL_OWNER_TERM 39
  225. #define SQL_PROCEDURE_TERM 40
  226. #define SQL_QUALIFIER_NAME_SEPARATOR 41
  227. #define SQL_QUALIFIER_TERM 42
  228. #define SQL_SCROLL_CONCURRENCY 43
  229. #define SQL_SCROLL_OPTIONS 44
  230. #define SQL_TABLE_TERM 45
  231. #define SQL_TXN_CAPABLE 46
  232. #define SQL_USER_NAME 47
  233. #define SQL_CONVERT_FUNCTIONS 48
  234. #define SQL_NUMERIC_FUNCTIONS 49
  235. #define SQL_STRING_FUNCTIONS 50
  236. #define SQL_SYSTEM_FUNCTIONS 51
  237. #define SQL_TIMEDATE_FUNCTIONS 52
  238. #define SQL_CONVERT_BIGINT 53
  239. #define SQL_CONVERT_BINARY 54
  240. #define SQL_CONVERT_BIT 55
  241. #define SQL_CONVERT_CHAR 56
  242. #define SQL_CONVERT_DATE 57
  243. #define SQL_CONVERT_DECIMAL 58
  244. #define SQL_CONVERT_DOUBLE 59
  245. #define SQL_CONVERT_FLOAT 60
  246. #define SQL_CONVERT_INTEGER 61
  247. #define SQL_CONVERT_LONGVARCHAR 62
  248. #define SQL_CONVERT_NUMERIC 63
  249. #define SQL_CONVERT_REAL 64
  250. #define SQL_CONVERT_SMALLINT 65
  251. #define SQL_CONVERT_TIME 66
  252. #define SQL_CONVERT_TIMESTAMP 67
  253. #define SQL_CONVERT_TINYINT 68
  254. #define SQL_CONVERT_VARBINARY 69
  255. #define SQL_CONVERT_VARCHAR 70
  256. #define SQL_CONVERT_LONGVARBINARY 71
  257. #define SQL_TXN_ISOLATION_OPTION 72
  258. #define SQL_ODBC_SQL_OPT_IEF 73
  259. /*
  260.  *  ODBC SDK 1.0 Additions
  261.  */
  262. #define SQL_CORRELATION_NAME 74
  263. #define SQL_NON_NULLABLE_COLUMNS 75
  264. /*
  265.  *  ODBC SDK 2.0 Additions
  266.  */
  267. #define SQL_DRIVER_HLIB  76
  268. #define SQL_DRIVER_ODBC_VER  77
  269. #define SQL_LOCK_TYPES 78
  270. #define SQL_POS_OPERATIONS 79
  271. #define SQL_POSITIONED_STATEMENTS 80
  272. #define SQL_GETDATA_EXTENSIONS 81
  273. #define SQL_BOOKMARK_PERSISTENCE 82
  274. #define SQL_STATIC_SENSITIVITY 83
  275. #define SQL_FILE_USAGE 84
  276. #define SQL_NULL_COLLATION 85
  277. #define SQL_ALTER_TABLE  86
  278. #define SQL_COLUMN_ALIAS 87
  279. #define SQL_GROUP_BY 88
  280. #define SQL_KEYWORDS 89
  281. #define SQL_ORDER_BY_COLUMNS_IN_SELECT 90
  282. #define SQL_OWNER_USAGE  91
  283. #define SQL_QUALIFIER_USAGE  92
  284. #define SQL_QUOTED_IDENTIFIER_CASE 93
  285. #define SQL_SPECIAL_CHARACTERS 94
  286. #define SQL_SUBQUERIES 95
  287. #define SQL_UNION 96
  288. #define SQL_MAX_COLUMNS_IN_GROUP_BY  97
  289. #define SQL_MAX_COLUMNS_IN_INDEX 98
  290. #define SQL_MAX_COLUMNS_IN_ORDER_BY  99
  291. #define SQL_MAX_COLUMNS_IN_SELECT 100
  292. #define SQL_MAX_COLUMNS_IN_TABLE 101
  293. #define SQL_MAX_INDEX_SIZE 102
  294. #define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103
  295. #define SQL_MAX_ROW_SIZE 104
  296. #define SQL_MAX_STATEMENT_LEN 105
  297. #define SQL_MAX_TABLES_IN_SELECT 106
  298. #define SQL_MAX_USER_NAME_LEN 107
  299. #define SQL_MAX_CHAR_LITERAL_LEN  108
  300. #define SQL_TIMEDATE_ADD_INTERVALS 109
  301. #define SQL_TIMEDATE_DIFF_INTERVALS  110
  302. #define SQL_NEED_LONG_DATA_LEN 111
  303. #define SQL_MAX_BINARY_LITERAL_LEN 112
  304. #define SQL_LIKE_ESCAPE_CLAUSE 113
  305. #define SQL_QUALIFIER_LOCATION 114
  306. /*
  307.  *  ODBC SDK 2.01 Additions
  308.  */
  309. #define SQL_OJ_CAPABILITIES  65003 /* Temp value until ODBC 3.0 */
  310. #define SQL_INFO_LAST SQL_QUALIFIER_LOCATION
  311. #define SQL_INFO_DRIVER_START 1000
  312. /*
  313.  *  SQL_CONVERT_* bitmask values
  314.  */
  315. #define SQL_CVT_CHAR 0x00000001L
  316. #define SQL_CVT_NUMERIC  0x00000002L
  317. #define SQL_CVT_DECIMAL  0x00000004L
  318. #define SQL_CVT_INTEGER  0x00000008L
  319. #define SQL_CVT_SMALLINT 0x00000010L
  320. #define SQL_CVT_FLOAT 0x00000020L
  321. #define SQL_CVT_REAL 0x00000040L
  322. #define SQL_CVT_DOUBLE 0x00000080L
  323. #define SQL_CVT_VARCHAR  0x00000100L
  324. #define SQL_CVT_LONGVARCHAR  0x00000200L
  325. #define SQL_CVT_BINARY 0x00000400L
  326. #define SQL_CVT_VARBINARY 0x00000800L
  327. #define SQL_CVT_BIT  0x00001000L
  328. #define SQL_CVT_TINYINT  0x00002000L
  329. #define SQL_CVT_BIGINT 0x00004000L
  330. #define SQL_CVT_DATE 0x00008000L
  331. #define SQL_CVT_TIME 0x00010000L
  332. #define SQL_CVT_TIMESTAMP 0x00020000L
  333. #define SQL_CVT_LONGVARBINARY 0x00040000L
  334. /*
  335.  *  SQL_CONVERT_FUNCTIONS
  336.  */
  337. #define SQL_FN_CVT_CONVERT 0x00000001L
  338. /*
  339.  *  SQL_STRING_FUNCTIONS
  340.  */
  341. #define SQL_FN_STR_CONCAT 0x00000001L
  342. #define SQL_FN_STR_INSERT 0x00000002L
  343. #define SQL_FN_STR_LEFT  0x00000004L
  344. #define SQL_FN_STR_LTRIM 0x00000008L
  345. #define SQL_FN_STR_LENGTH 0x00000010L
  346. #define SQL_FN_STR_LOCATE 0x00000020L
  347. #define SQL_FN_STR_LCASE 0x00000040L
  348. #define SQL_FN_STR_REPEAT 0x00000080L
  349. #define SQL_FN_STR_REPLACE 0x00000100L
  350. #define SQL_FN_STR_RIGHT 0x00000200L
  351. #define SQL_FN_STR_RTRIM 0x00000400L
  352. #define SQL_FN_STR_SUBSTRING 0x00000800L
  353. #define SQL_FN_STR_UCASE 0x00001000L
  354. #define SQL_FN_STR_ASCII 0x00002000L
  355. #define SQL_FN_STR_CHAR  0x00004000L
  356. #define SQL_FN_STR_DIFFERENCE 0x00008000L
  357. #define SQL_FN_STR_LOCATE_2  0x00010000L
  358. #define SQL_FN_STR_SOUNDEX 0x00020000L
  359. #define SQL_FN_STR_SPACE 0x00040000L
  360. /*
  361.  *  SQL_NUMERIC_FUNCTIONS
  362.  */
  363. #define SQL_FN_NUM_ABS 0x00000001L
  364. #define SQL_FN_NUM_ACOS  0x00000002L
  365. #define SQL_FN_NUM_ASIN  0x00000004L
  366. #define SQL_FN_NUM_ATAN  0x00000008L
  367. #define SQL_FN_NUM_ATAN2 0x00000010L
  368. #define SQL_FN_NUM_CEILING 0x00000020L
  369. #define SQL_FN_NUM_COS 0x00000040L
  370. #define SQL_FN_NUM_COT 0x00000080L
  371. #define SQL_FN_NUM_EXP 0x00000100L
  372. #define SQL_FN_NUM_FLOOR 0x00000200L
  373. #define SQL_FN_NUM_LOG 0x00000400L
  374. #define SQL_FN_NUM_MOD 0x00000800L
  375. #define SQL_FN_NUM_SIGN   0x00001000L
  376. #define SQL_FN_NUM_SIN 0x00002000L
  377. #define SQL_FN_NUM_SQRT   0x00004000L
  378. #define SQL_FN_NUM_TAN 0x00008000L
  379. #define SQL_FN_NUM_PI 0x00010000L
  380. #define SQL_FN_NUM_RAND   0x00020000L
  381. #define SQL_FN_NUM_DEGREES 0x00040000L
  382. #define SQL_FN_NUM_LOG10 0x00080000L
  383. #define SQL_FN_NUM_POWER 0x00100000L
  384. #define SQL_FN_NUM_RADIANS 0x00200000L
  385. #define SQL_FN_NUM_ROUND 0x00400000L
  386. #define SQL_FN_NUM_TRUNCATE  0x00800000L
  387. /*
  388.  *  SQL_TIMEDATE_FUNCTIONS
  389.  */
  390. #define SQL_FN_TD_NOW 0x00000001L
  391. #define SQL_FN_TD_CURDATE 0x00000002L
  392. #define SQL_FN_TD_DAYOFMONTH 0x00000004L
  393. #define SQL_FN_TD_DAYOFWEEK  0x00000008L
  394. #define SQL_FN_TD_DAYOFYEAR  0x00000010L
  395. #define SQL_FN_TD_MONTH  0x00000020L
  396. #define SQL_FN_TD_QUARTER 0x00000040L
  397. #define SQL_FN_TD_WEEK 0x00000080L
  398. #define SQL_FN_TD_YEAR 0x00000100L
  399. #define SQL_FN_TD_CURTIME 0x00000200L
  400. #define SQL_FN_TD_HOUR 0x00000400L
  401. #define SQL_FN_TD_MINUTE 0x00000800L
  402. #define SQL_FN_TD_SECOND 0x00001000L
  403. #define SQL_FN_TD_TIMESTAMPADD 0x00002000L
  404. #define SQL_FN_TD_TIMESTAMPDIFF  0x00004000L
  405. #define SQL_FN_TD_DAYNAME 0x00008000L
  406. #define SQL_FN_TD_MONTHNAME  0x00010000L
  407. /*
  408.  *  SQL_SYSTEM_FUNCTIONS
  409.  */
  410. #define SQL_FN_SYS_USERNAME  0x00000001L
  411. #define SQL_FN_SYS_DBNAME 0x00000002L
  412. #define SQL_FN_SYS_IFNULL 0x00000004L
  413. /*
  414.  *  SQL_TIMEDATE_ADD_INTERVALS
  415.  *  SQL_TIMEDATE_DIFF_INTERVALS
  416.  */
  417. #define SQL_FN_TSI_FRAC_SECOND 0x00000001L
  418. #define SQL_FN_TSI_SECOND 0x00000002L
  419. #define SQL_FN_TSI_MINUTE 0x00000004L
  420. #define SQL_FN_TSI_HOUR  0x00000008L
  421. #define SQL_FN_TSI_DAY 0x00000010L
  422. #define SQL_FN_TSI_WEEK  0x00000020L
  423. #define SQL_FN_TSI_MONTH 0x00000040L
  424. #define SQL_FN_TSI_QUARTER 0x00000080L
  425. #define SQL_FN_TSI_YEAR  0x00000100L
  426. /*
  427.  *  SQL_ODBC_API_CONFORMANCE
  428.  */
  429. #define SQL_OAC_NONE 0x0000
  430. #define SQL_OAC_LEVEL1 0x0001
  431. #define SQL_OAC_LEVEL2 0x0002
  432. /*
  433.  * SQL_ODBC_SAG_CLI_CONFORMANCE
  434.  */
  435. #define SQL_OSCC_NOT_COMPLIANT 0x0000
  436. #define SQL_OSCC_COMPLIANT 0x0001
  437. /*
  438.  *  SQL_ODBC_SQL_CONFORMANCE
  439.  */
  440. #define SQL_OSC_MINIMUM  0x0000
  441. #define SQL_OSC_CORE 0x0001
  442. #define SQL_OSC_EXTENDED 0x0002
  443. /*
  444.  *  SQL_CONCAT_NULL_BEHAVIOR
  445.  */
  446. #define SQL_CB_NULL  0x0000
  447. #define SQL_CB_NON_NULL   0x0001
  448. /*
  449.  *  SQL_CURSOR_COMMIT_BEHAVIOR
  450.  *  SQL_CURSOR_ROLLBACK_BEHAVIOR
  451.  */
  452. #define SQL_CB_DELETE 0x0000
  453. #define SQL_CB_CLOSE 0x0001
  454. #define SQL_CB_PRESERVE 0x0002
  455. /*
  456.  *  SQL_IDENTIFIER_CASE
  457.  */
  458. #define SQL_IC_UPPER 0x0001
  459. #define SQL_IC_LOWER 0x0002
  460. #define SQL_IC_SENSITIVE 0x0003
  461. #define SQL_IC_MIXED 0x0004
  462. /*
  463.  *  SQL_TXN_CAPABLE
  464.  */
  465. #define SQL_TC_NONE  0x0000
  466. #define SQL_TC_DML 0x0001
  467. #define SQL_TC_ALL 0x0002
  468. #define SQL_TC_DDL_COMMIT 0x0003
  469. #define SQL_TC_DDL_IGNORE 0x0004
  470. /*
  471.  *  SQL_SCROLL_OPTIONS
  472.  */
  473. #define SQL_SO_FORWARD_ONLY  0x00000001L
  474. #define SQL_SO_KEYSET_DRIVEN 0x00000002L
  475. #define SQL_SO_DYNAMIC 0x00000004L
  476. #define SQL_SO_MIXED 0x00000008L
  477. #define SQL_SO_STATIC 0x00000010L
  478. /*
  479.  * SQL_SCROLL_CONCURRENCY
  480.  */
  481. #define SQL_SCCO_READ_ONLY 0x00000001L
  482. #define SQL_SCCO_LOCK 0x00000002L
  483. #define SQL_SCCO_OPT_ROWVER  0x00000004L
  484. #define SQL_SCCO_OPT_VALUES  0x00000008L
  485. /*
  486.  *  SQL_FETCH_DIRECTION
  487.  */
  488. #define SQL_FD_FETCH_NEXT 0x00000001L
  489. #define SQL_FD_FETCH_FIRST 0x00000002L
  490. #define SQL_FD_FETCH_LAST 0x00000004L
  491. #define SQL_FD_FETCH_PRIOR 0x00000008L
  492. #define SQL_FD_FETCH_ABSOLUTE 0x00000010L
  493. #define SQL_FD_FETCH_RELATIVE 0x00000020L
  494. #define SQL_FD_FETCH_RESUME  0x00000040L
  495. #define SQL_FD_FETCH_BOOKMARK 0x00000080L
  496. /*
  497.  *  SQL_TXN_ISOLATION_OPTION
  498.  */
  499. #define SQL_TXN_READ_UNCOMMITTED 0x00000001L
  500. #define SQL_TXN_READ_COMMITTED 0x00000002L
  501. #define SQL_TXN_REPEATABLE_READ  0x00000004L
  502. #define SQL_TXN_SERIALIZABLE 0x00000008L
  503. #define SQL_TXN_VERSIONING 0x00000010L
  504. /*
  505.  *  SQL_CORRELATION_NAME
  506.  */
  507. #define SQL_CN_NONE  0x0000
  508. #define SQL_CN_DIFFERENT 0x0001
  509. #define SQL_CN_ANY 0x0002
  510. /*
  511.  * SQL_NON_NULLABLE_COLUMNS
  512.  */
  513. #define SQL_NNC_NULL 0x0000
  514. #define SQL_NNC_NON_NULL 0x0001
  515. /*
  516.  *  SQL_NULL_COLLATION
  517.  */
  518. #define SQL_NC_HIGH  0x0000
  519. #define SQL_NC_LOW 0x0001
  520. #define SQL_NC_START 0x0002
  521. #define SQL_NC_END 0x0004
  522. /*
  523.  * SQL_FILE_USAGE
  524.  */
  525. #define SQL_FILE_NOT_SUPPORTED 0x0000
  526. #define SQL_FILE_TABLE 0x0001
  527. #define SQL_FILE_QUALIFIER 0x0002
  528. /*
  529.  *  SQL_GETDATA_EXTENSIONS
  530.  */
  531. #define SQL_GD_ANY_COLUMN 0x00000001L
  532. #define SQL_GD_ANY_ORDER 0x00000002L
  533. #define SQL_GD_BLOCK 0x00000004L
  534. #define SQL_GD_BOUND 0x00000008L
  535. /*
  536.  * SQL_ALTER_TABLE
  537.  */
  538. #define SQL_AT_ADD_COLUMN 0x00000001L
  539. #define SQL_AT_DROP_COLUMN 0x00000002L
  540. /*
  541.  *  SQL_POSITIONED_STATEMENTS
  542.  */
  543. #define SQL_PS_POSITIONED_DELETE 0x00000001L
  544. #define SQL_PS_POSITIONED_UPDATE 0x00000002L
  545. #define SQL_PS_SELECT_FOR_UPDATE 0x00000004L
  546. /*
  547.  *  SQL_GROUP_BY
  548.  */
  549. #define SQL_GB_NOT_SUPPORTED 0x0000
  550. #define SQL_GB_GROUP_BY_EQUALS_SELECT 0x0001
  551. #define SQL_GB_GROUP_BY_CONTAINS_SELECT 0x0002
  552. #define SQL_GB_NO_RELATION 0x0003
  553. /*
  554.  *  SQL_OWNER_USAGE
  555.  */
  556. #define SQL_OU_DML_STATEMENTS 0x00000001L
  557. #define SQL_OU_PROCEDURE_INVOCATION 0x00000002L
  558. #define SQL_OU_TABLE_DEFINITION  0x00000004L
  559. #define SQL_OU_INDEX_DEFINITION  0x00000008L
  560. #define SQL_OU_PRIVILEGE_DEFINITION 0x00000010L
  561. /*
  562.  * SQL_QUALIFIER_USAGE
  563.  */
  564. #define SQL_QU_DML_STATEMENTS 0x00000001L
  565. #define SQL_QU_PROCEDURE_INVOCATION  0x00000002L
  566. #define SQL_QU_TABLE_DEFINITION  0x00000004L
  567. #define SQL_QU_INDEX_DEFINITION  0x00000008L
  568. #define SQL_QU_PRIVILEGE_DEFINITION  0x00000010L
  569. /*
  570.  *  SQL_SUBQUERIES
  571.  */
  572. #define SQL_SQ_COMPARISON 0x00000001L
  573. #define SQL_SQ_EXISTS 0x00000002L
  574. #define SQL_SQ_IN 0x00000004L
  575. #define SQL_SQ_QUANTIFIED 0x00000008L
  576. #define SQL_SQ_CORRELATED_SUBQUERIES 0x00000010L
  577. /*
  578.  *  SQL_UNION
  579.  */
  580. #define SQL_U_UNION 0x00000001L
  581. #define SQL_U_UNION_ALL 0x00000002L
  582. /*
  583.  *  SQL_BOOKMARK_PERSISTENCE
  584.  */
  585. #define SQL_BP_CLOSE 0x00000001L
  586. #define SQL_BP_DELETE 0x00000002L
  587. #define SQL_BP_DROP  0x00000004L
  588. #define SQL_BP_TRANSACTION 0x00000008L
  589. #define SQL_BP_UPDATE 0x00000010L
  590. #define SQL_BP_OTHER_HSTMT 0x00000020L
  591. #define SQL_BP_SCROLL 0x00000040L
  592. /*
  593.  * SQL_STATIC_SENSITIVITY
  594.  */
  595. #define SQL_SS_ADDITIONS 0x00000001L
  596. #define SQL_SS_DELETIONS 0x00000002L
  597. #define SQL_SS_UPDATES 0x00000004L
  598. /*
  599.  *  SQL_LOCK_TYPES
  600.  */
  601. #define SQL_LCK_NO_CHANGE 0x00000001L
  602. #define SQL_LCK_EXCLUSIVE 0x00000002L
  603. #define SQL_LCK_UNLOCK 0x00000004L
  604. /*
  605.  *  SQL_POS_OPERATIONS
  606.  */
  607. #define SQL_POS_POSITION 0x00000001L
  608. #define SQL_POS_REFRESH  0x00000002L
  609. #define SQL_POS_UPDATE 0x00000004L
  610. #define SQL_POS_DELETE 0x00000008L
  611. #define SQL_POS_ADD 0x00000010L
  612. /*
  613.  *  SQL_QUALIFIER_LOCATION
  614.  */
  615. #define SQL_QL_START 0x0001L
  616. #define SQL_QL_END 0x0002L
  617. /*
  618.  *  SQL_OJ_CAPABILITIES
  619.  */
  620. #define SQL_OJ_LEFT 0x00000001L
  621. #define SQL_OJ_RIGHT 0x00000002L
  622. #define SQL_OJ_FULL 0x00000004L
  623. #define SQL_OJ_NESTED 0x00000008L
  624. #define SQL_OJ_NOT_ORDERED 0x00000010L
  625. #define SQL_OJ_INNER 0x00000020L
  626. #define SQL_OJ_ALL_COMPARISON_OPS 0x00000040L
  627. /*
  628.  *  SQLGetStmtOption/SQLSetStmtOption
  629.  */
  630. #define SQL_QUERY_TIMEOUT 0
  631. #define SQL_MAX_ROWS 1
  632. #define SQL_NOSCAN 2
  633. #define SQL_MAX_LENGTH 3
  634. #define SQL_ASYNC_ENABLE 4
  635. #define SQL_BIND_TYPE 5
  636. #define SQL_CURSOR_TYPE  6
  637. #define SQL_CONCURRENCY  7
  638. #define SQL_KEYSET_SIZE  8
  639. #define SQL_ROWSET_SIZE  9
  640. #define SQL_SIMULATE_CURSOR  10
  641. #define SQL_RETRIEVE_DATA 11
  642. #define SQL_USE_BOOKMARKS 12
  643. #define SQL_GET_BOOKMARK 13
  644. #define SQL_ROW_NUMBER 14
  645. #define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT
  646. #define SQL_STMT_OPT_MAX SQL_ROW_NUMBER
  647. /*
  648.  * SQL_QUERY_TIMEOUT
  649.  */
  650. #define SQL_QUERY_TIMEOUT_DEFAULT 0UL
  651. /*
  652.  *  SQL_MAX_ROWS
  653.  */
  654. #define SQL_MAX_ROWS_DEFAULT 0UL
  655. /*
  656.  *  SQL_NOSCAN
  657.  */
  658. #define SQL_NOSCAN_OFF 0UL /* 1.0 FALSE */
  659. #define SQL_NOSCAN_ON 1UL /* 1.0 TRUE */
  660. #define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF
  661. /*
  662.  *  SQL_MAX_LENGTH
  663.  */
  664. #define SQL_MAX_LENGTH_DEFAULT 0UL
  665. /*
  666.  *  SQL_ASYNC_ENABLE
  667.  */
  668. #define SQL_ASYNC_ENABLE_OFF 0UL
  669. #define SQL_ASYNC_ENABLE_ON 1UL
  670. #define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF
  671. /*
  672.  *  SQL_BIND_TYPE
  673.  */
  674. #define SQL_BIND_BY_COLUMN 0UL
  675. #define SQL_BIND_TYPE_DEFAULT SQL_BIND_BY_COLUMN
  676. /*
  677.  *  SQL_CONCURRENCY
  678.  */
  679. #define SQL_CONCUR_READ_ONLY 1
  680. #define SQL_CONCUR_LOCK  2
  681. #define SQL_CONCUR_ROWVER 3
  682. #define SQL_CONCUR_VALUES 4
  683. #define SQL_CONCUR_DEFAULT SQL_CONCUR_READ_ONLY
  684. /*
  685.  *  SQL_CURSOR_TYPE
  686.  */
  687. #define SQL_CURSOR_FORWARD_ONLY  0UL
  688. #define SQL_CURSOR_KEYSET_DRIVEN 1UL
  689. #define SQL_CURSOR_DYNAMIC 2UL
  690. #define SQL_CURSOR_STATIC 3UL
  691. #define SQL_CURSOR_TYPE_DEFAULT SQL_CURSOR_FORWARD_ONLY
  692. /*
  693.  *  SQL_ROWSET_SIZE
  694.  */
  695. #define SQL_ROWSET_SIZE_DEFAULT  1UL
  696. /*
  697.  *  SQL_KEYSET_SIZE
  698.  */
  699. #define SQL_KEYSET_SIZE_DEFAULT 0UL
  700. /*
  701.  *  SQL_SIMULATE_CURSOR
  702.  */
  703. #define SQL_SC_NON_UNIQUE 0UL
  704. #define SQL_SC_TRY_UNIQUE 1UL
  705. #define SQL_SC_UNIQUE 2UL
  706. /*
  707.  *  SQL_RETRIEVE_DATA
  708.  */
  709. #define SQL_RD_OFF 0UL
  710. #define SQL_RD_ON 1UL
  711. #define SQL_RD_DEFAULT SQL_RD_ON
  712. /*
  713.  *  SQL_USE_BOOKMARKS
  714.  */
  715. #define SQL_UB_OFF 0UL
  716. #define SQL_UB_ON 1UL
  717. #define SQL_UB_DEFAULT SQL_UB_OFF
  718. /*
  719.  *  SQLSetConnectOption/SQLGetConnectOption
  720.  */
  721. #define SQL_ACCESS_MODE   101
  722. #define SQL_AUTOCOMMIT 102
  723. #define SQL_LOGIN_TIMEOUT 103
  724. #define SQL_OPT_TRACE 104
  725. #define SQL_OPT_TRACEFILE 105
  726. #define SQL_TRANSLATE_DLL 106
  727. #define SQL_TRANSLATE_OPTION 107
  728. #define SQL_TXN_ISOLATION 108
  729. #define SQL_CURRENT_QUALIFIER 109
  730. #define SQL_ODBC_CURSORS 110
  731. #define SQL_QUIET_MODE 111
  732. #define SQL_PACKET_SIZE   112
  733. #define SQL_CONN_OPT_MIN SQL_ACCESS_MODE
  734. #define SQL_CONN_OPT_MAX SQL_PACKET_SIZE
  735. #define SQL_CONNECT_OPT_DRVR_START 1000
  736. /*
  737.  *  SQL_ACCESS_MODE
  738.  */
  739. #define SQL_MODE_READ_WRITE  0UL
  740. #define SQL_MODE_READ_ONLY 1UL
  741. #define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE
  742. /*
  743.  *  SQL_AUTOCOMMIT
  744.  */
  745. #define SQL_AUTOCOMMIT_OFF 0UL
  746. #define SQL_AUTOCOMMIT_ON 1UL
  747. #define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON
  748. /*
  749.  *  SQL_LOGIN_TIMEOUT
  750.  */
  751. #define SQL_LOGIN_TIMEOUT_DEFAULT 15UL
  752. /*
  753.  *  SQL_OPT_TRACE
  754.  */
  755. #define SQL_OPT_TRACE_OFF 0UL
  756. #define SQL_OPT_TRACE_ON 1UL
  757. #define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF
  758. #define SQL_OPT_TRACE_FILE_DEFAULT "odbc.log"
  759. /*
  760.  *  SQL_ODBC_CURSORS
  761.  */
  762. #define SQL_CUR_USE_IF_NEEDED 0UL
  763. #define SQL_CUR_USE_ODBC 1UL
  764. #define SQL_CUR_USE_DRIVER 2UL
  765. #define SQL_CUR_DEFAULT  SQL_CUR_USE_DRIVER
  766. /*
  767.  *  SQLSpecialColumns - Column types and scopes
  768.  */
  769. #define SQL_BEST_ROWID 1
  770. #define SQL_ROWVER 2
  771. #define SQL_SCOPE_CURROW 0
  772. #define SQL_SCOPE_TRANSACTION 1
  773. #define SQL_SCOPE_SESSION 2
  774. /*
  775.  *  SQLSetPos
  776.  */
  777. #define SQL_ENTIRE_ROWSET 0
  778. /*
  779.  *  SQLSetPos
  780.  */
  781. #define SQL_POSITION 0
  782. #define SQL_REFRESH  1
  783. #define SQL_UPDATE 2
  784. #define SQL_DELETE 3
  785. #define SQL_ADD 4
  786. /*
  787.  *  SQLSetPos
  788.  */
  789. #define SQL_LOCK_NO_CHANGE 0
  790. #define SQL_LOCK_EXCLUSIVE 1
  791. #define SQL_LOCK_UNLOCK  2
  792. /*
  793.  *  SQLSetPos
  794.  */
  795. #define SQL_POSITION_TO(hstmt,irow) 
  796.     SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
  797. #define SQL_LOCK_RECORD(hstmt,irow,fLock) 
  798.     SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
  799. #define SQL_REFRESH_RECORD(hstmt,irow,fLock) 
  800.     SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
  801. #define SQL_UPDATE_RECORD(hstmt,irow) 
  802.     SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
  803. #define SQL_DELETE_RECORD(hstmt,irow) 
  804.     SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
  805. #define SQL_ADD_RECORD(hstmt,irow) 
  806.     SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
  807. /*
  808.  *  All the ODBC keywords
  809.  */
  810. #define SQL_ODBC_KEYWORDS 
  811. "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"
  812. "ASC,ASSERTION,AT,AUTHORIZATION,AVG,"
  813. "BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"
  814. "CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"
  815. "COBOL,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"
  816. "CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"
  817. "CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"
  818. "DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"
  819. "DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"
  820. "DISTINCT,DOMAIN,DOUBLE,DROP,"
  821. "ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"
  822. "EXISTS,EXTERNAL,EXTRACT,"
  823. "FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"
  824. "GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"
  825. "IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"
  826. "INPUT,INSENSITIVE,INSERT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"
  827. "JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"
  828. "MATCH,MAX,MIN,MINUTE,MODULE,MONTH,MUMPS,"
  829. "NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"
  830. "OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"
  831. "PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"
  832. "PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"
  833. "REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS,"
  834. "SCHEMA,SCROLL,SECOND,SECTION,SELECT,SEQUENCE,SESSION,SESSION_USER,SET,SIZE,"
  835. "SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"
  836. "SUBSTRING,SUM,SYSTEM_USER,"
  837. "TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"
  838. "TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"
  839. "UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"
  840. "VALUE,,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,YEAR"
  841. /*
  842.  * ----------------------------------------------------------------------
  843.  *  Level 2 Functions
  844.  * ----------------------------------------------------------------------
  845.  */
  846. /*
  847.  *  SQLExtendedFetch - fFetchType
  848.  */
  849. #define SQL_FETCH_NEXT 1
  850. #define SQL_FETCH_FIRST  2
  851. #define SQL_FETCH_LAST 3
  852. #define SQL_FETCH_PRIOR 4
  853. #define SQL_FETCH_ABSOLUTE 5
  854. #define SQL_FETCH_RELATIVE 6
  855. #define SQL_FETCH_BOOKMARK 8
  856. /*
  857.  *  SQLExtendedFetch - rgfRowStatus
  858.  */
  859. #define SQL_ROW_SUCCESS  0
  860. #define SQL_ROW_DELETED  1
  861. #define SQL_ROW_UPDATED  2
  862. #define SQL_ROW_NOROW 3
  863. #define SQL_ROW_ADDED 4
  864. #define SQL_ROW_ERROR 5
  865. /*
  866.  *  SQLForeignKeys - UPDATE_RULE/DELETE_RULE
  867.  */
  868. #define SQL_CASCADE  0
  869. #define SQL_RESTRICT 1
  870. #define SQL_SET_NULL 2
  871. /*
  872.  *  SQLBindParameter - fParamType
  873.  *  SQLProcedureColumns - COLUMN_TYPE
  874.  */
  875. #define SQL_PARAM_TYPE_UNKNOWN 0
  876. #define SQL_PARAM_INPUT 1
  877. #define SQL_PARAM_INPUT_OUTPUT 2
  878. #define SQL_RESULT_COL 3
  879. #define SQL_PARAM_OUTPUT 4
  880. #define SQL_RETURN_VALUE 5
  881. /*
  882.  *  SQLSetParam to SQLBindParameter conversion
  883.  */
  884. #define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT
  885. #define SQL_SETPARAM_VALUE_MAX (-1L)
  886. /*
  887.  *  SQLStatistics - fUnique
  888.  */
  889. #define SQL_INDEX_UNIQUE 0
  890. #define SQL_INDEX_ALL 1
  891. /*
  892.  *  SQLStatistics - fAccuracy
  893.  */
  894. #define SQL_QUICK 0
  895. #define SQL_ENSURE 1
  896. /*
  897.  *  SQLStatistics - TYPE
  898.  */
  899. #define SQL_TABLE_STAT 0
  900. #define SQL_INDEX_CLUSTERED  1
  901. #define SQL_INDEX_HASHED 2
  902. #define SQL_INDEX_OTHER  3
  903. /*
  904.  *  SQLProcedures - PROCEDURE_TYPE
  905.  */
  906. #define SQL_PT_UNKNOWN 0
  907. #define SQL_PT_PROCEDURE 1
  908. #define SQL_PT_FUNCTION  2
  909. /*
  910.  *  SQLSpecialColumns - PSEUDO_COLUMN
  911.  */
  912. #define SQL_PC_UNKNOWN 0
  913. #define SQL_PC_NOT_PSEUDO 1
  914. #define SQL_PC_PSEUDO 2
  915. /*
  916.  *  Deprecated defines from prior versions of ODBC
  917.  */
  918. #define SQL_DATABASE_NAME  16
  919. #define SQL_FD_FETCH_PREV SQL_FD_FETCH_PRIOR
  920. #define SQL_FETCH_PREV SQL_FETCH_PRIOR
  921. #define SQL_CONCUR_TIMESTAMP SQL_CONCUR_ROWVER
  922. #define SQL_SCCO_OPT_TIMESTAMP SQL_SCCO_OPT_ROWVER
  923. #define SQL_CC_DELETE SQL_CB_DELETE
  924. #define SQL_CR_DELETE SQL_CB_DELETE
  925. #define SQL_CC_CLOSE SQL_CB_CLOSE
  926. #define SQL_CR_CLOSE SQL_CB_CLOSE
  927. #define SQL_CC_PRESERVE  SQL_CB_PRESERVE
  928. #define SQL_CR_PRESERVE  SQL_CB_PRESERVE
  929. #define SQL_FETCH_RESUME 7
  930. #define SQL_SCROLL_FORWARD_ONLY  0L
  931. #define SQL_SCROLL_KEYSET_DRIVEN (-1L)
  932. #define SQL_SCROLL_DYNAMIC (-2L)
  933. #define SQL_SCROLL_STATIC (-3L)
  934. #define SQL_PC_NON_PSEUDO SQL_PC_NOT_PSEUDO
  935. #ifdef __cplusplus
  936. extern "C" {
  937. #endif
  938. /*
  939.  *  Level 1 function rototypes
  940.  */
  941. RETCODE SQL_API SQLColumns (HSTMT hstmt, UCHAR FAR * szTableQualifier,
  942.     SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner,
  943.     UCHAR FAR * szTableName, SWORD cbTableName, UCHAR FAR * szColumnName,
  944.     SWORD cbColumnName);
  945. RETCODE SQL_API SQLDriverConnect (HDBC hdbc, HWND hwnd,
  946.     UCHAR FAR * szConnStrIn, SWORD cbConnStrIn, UCHAR FAR * szConnStrOut,
  947.     SWORD cbConnStrOutMax, SWORD FAR * pcbConnStrOut, UWORD fDriverCompletion);
  948. RETCODE SQL_API SQLGetConnectOption (HDBC hdbc, UWORD fOption, PTR pvParam);
  949. RETCODE SQL_API SQLGetData (HSTMT hstmt, UWORD icol, SWORD fCType,
  950.     PTR rgbValue, SDWORD cbValueMax, SDWORD FAR * pcbValue);
  951. RETCODE SQL_API SQLGetFunctions (HDBC hdbc, UWORD fFunction,
  952.     UWORD FAR * pfExists);
  953. RETCODE SQL_API SQLGetInfo (HDBC hdbc, UWORD fInfoType, PTR rgbInfoValue,
  954.     SWORD cbInfoValueMax, SWORD FAR * pcbInfoValue);
  955. RETCODE SQL_API SQLGetStmtOption (HSTMT hstmt, UWORD fOption, PTR pvParam);
  956. RETCODE SQL_API SQLGetTypeInfo (HSTMT hstmt, SWORD fSqlType);
  957. RETCODE SQL_API SQLParamData (HSTMT hstmt, PTR FAR * prgbValue);
  958. RETCODE SQL_API SQLPutData (HSTMT hstmt, PTR rgbValue, SDWORD cbValue);
  959. RETCODE SQL_API SQLSetConnectOption (HDBC hdbc, UWORD fOption, UDWORD vParam);
  960. RETCODE SQL_API SQLSetStmtOption (HSTMT hstmt, UWORD fOption, UDWORD vParam);
  961. RETCODE SQL_API SQLSpecialColumns (HSTMT hstmt, UWORD fColType,
  962.     UCHAR FAR * szTableQualifier, SWORD cbTableQualifier,
  963.     UCHAR FAR * szTableOwner, SWORD cbTableOwner, UCHAR FAR * szTableName,
  964.     SWORD cbTableName, UWORD fScope, UWORD fNullable);
  965. RETCODE SQL_API SQLStatistics (HSTMT hstmt, UCHAR FAR * szTableQualifier,
  966.     SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner,
  967.     UCHAR FAR * szTableName, SWORD cbTableName, UWORD fUnique, UWORD fAccuracy);
  968. RETCODE SQL_API SQLTables (HSTMT hstmt, UCHAR FAR * szTableQualifier,
  969.     SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner,
  970.     UCHAR FAR * szTableName, SWORD cbTableName, UCHAR FAR * szTableType,
  971.     SWORD cbTableType);
  972. /*
  973.  *  Level 2 function prototypes
  974.  */
  975. RETCODE SQL_API SQLBrowseConnect (HDBC hdbc, HWND hwnd, 
  976.     UCHAR FAR * szConnStrIn, SWORD cbConnStrIn, UCHAR FAR * szConnStrOut, 
  977.     SWORD cbConnStrOutMax, SWORD FAR * pcbConnStrOut);
  978. RETCODE SQL_API SQLColumnPrivileges (HSTMT hstmt,
  979.     UCHAR FAR * szTableQualifier, SWORD cbTableQualifier,
  980.     UCHAR FAR * szTableOwner, SWORD cbTableOwner, UCHAR FAR * szTableName,
  981.     SWORD cbTableName, UCHAR FAR * szColumnName, SWORD cbColumnName);
  982. RETCODE SQL_API SQLDataSources (HENV henv, UWORD fDirection,
  983.     UCHAR FAR * szDSN, SWORD cbDSNMax, SWORD FAR * pcbDSN,
  984.     UCHAR FAR * szDescription, SWORD cbDescriptionMax,
  985.     SWORD FAR * pcbDescription);
  986. RETCODE SQL_API SQLDescribeParam (HSTMT hstmt, UWORD ipar,
  987.     SWORD FAR * pfSqlType, UDWORD FAR * pcbColDef, SWORD FAR * pibScale,
  988.     SWORD FAR * pfNullable);
  989. RETCODE SQL_API SQLExtendedFetch (HSTMT hstmt, UWORD fFetchType, SDWORD irow,
  990.     UDWORD FAR * pcrow, UWORD FAR * rgfRowStatus);
  991. RETCODE SQL_API SQLForeignKeys (HSTMT hstmt, UCHAR FAR * szPkTableQualifier,
  992.     SWORD cbPkTableQualifier, UCHAR FAR * szPkTableOwner, SWORD cbPkTableOwner,
  993.     UCHAR FAR * szPkTableName, SWORD cbPkTableName,
  994.     UCHAR FAR * szFkTableQualifier, SWORD cbFkTableQualifier,
  995.     UCHAR FAR * szFkTableOwner, SWORD cbFkTableOwner, UCHAR FAR * szFkTableName,
  996.     SWORD cbFkTableName);
  997. RETCODE SQL_API SQLMoreResults (HSTMT hstmt);
  998. RETCODE SQL_API SQLNativeSql (HDBC hdbc, UCHAR FAR * szSqlStrIn,
  999.     SDWORD cbSqlStrIn, UCHAR FAR * szSqlStr, SDWORD cbSqlStrMax,
  1000.     SDWORD FAR * pcbSqlStr);
  1001. RETCODE SQL_API SQLNumParams (HSTMT hstmt, SWORD FAR * pcpar);
  1002. RETCODE SQL_API SQLParamOptions (HSTMT hstmt, UDWORD crow, UDWORD FAR * pirow);
  1003. RETCODE SQL_API SQLPrimaryKeys (HSTMT hstmt, UCHAR FAR * szTableQualifier,
  1004.     SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner,
  1005.     UCHAR FAR * szTableName, SWORD cbTableName);
  1006. RETCODE SQL_API SQLProcedureColumns (HSTMT hstmt, UCHAR FAR * szProcQualifier,
  1007.     SWORD cbProcQualifier, UCHAR FAR * szProcOwner, SWORD cbProcOwner,
  1008.     UCHAR FAR * szProcName, SWORD cbProcName, UCHAR FAR * szColumnName,
  1009.     SWORD cbColumnName);
  1010. RETCODE SQL_API SQLProcedures (HSTMT hstmt, UCHAR FAR * szProcQualifier,
  1011.     SWORD cbProcQualifier, UCHAR FAR * szProcOwner, SWORD cbProcOwner,
  1012.     UCHAR FAR * szProcName, SWORD cbProcName);
  1013. RETCODE SQL_API SQLSetPos (HSTMT hstmt, UWORD irow, UWORD fOption, UWORD fLock);
  1014. RETCODE SQL_API SQLTablePrivileges (HSTMT hstmt, UCHAR FAR * szTableQualifier,
  1015.     SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner,
  1016.     UCHAR FAR * szTableName, SWORD cbTableName);
  1017. /*
  1018.  *  SDK 2.0 Additional function prototypes
  1019.  */
  1020. RETCODE SQL_API SQLDrivers (HENV henv, UWORD fDirection,
  1021.     UCHAR FAR * szDriverDesc, SWORD cbDriverDescMax, SWORD FAR * pcbDriverDesc,
  1022.     UCHAR FAR * szDriverAttributes, SWORD cbDrvrAttrMax,
  1023.     SWORD FAR * pcbDrvrAttr);
  1024. RETCODE SQL_API SQLBindParameter (HSTMT hstmt, UWORD ipar, SWORD fParamType,
  1025.     SWORD fCType, SWORD fSqlType, UDWORD cbColDef, SWORD ibScale, PTR rgbValue,
  1026.     SDWORD cbValueMax, SDWORD FAR * pcbValue);
  1027. /*
  1028.  *  Depreciated - use SQLSetStmtOptions
  1029.  */
  1030. RETCODE SQL_API SQLSetScrollOptions (HSTMT hstmt, UWORD fConcurrency,
  1031.     SDWORD crowKeyset, UWORD crowRowset);
  1032. #ifdef __cplusplus
  1033. }
  1034. #endif
  1035. #endif