ibm_db 5.0.2 → 5.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/ext/ibm_db.o +0 -0
  3. data/ext/ibm_db.so +0 -0
  4. data/ext/ruby_ibm_db_cli.o +0 -0
  5. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +30 -2
  6. data/lib/clidriver.tar.gz +0 -0
  7. data/lib/clidriver/bin/db2cli +0 -0
  8. data/lib/clidriver/bin/db2diag +0 -0
  9. data/lib/clidriver/bin/db2drdat +0 -0
  10. data/lib/clidriver/bin/db2dsdcfgfill +0 -0
  11. data/lib/clidriver/bin/db2ldcfg +0 -0
  12. data/lib/clidriver/bin/db2lddrg +0 -0
  13. data/lib/clidriver/bin/db2level +0 -0
  14. data/lib/clidriver/bin/db2support +0 -0
  15. data/lib/clidriver/bin/db2trc +0 -0
  16. data/lib/clidriver/bnd/db2ajgrt.bnd +0 -0
  17. data/lib/clidriver/bnd/db2cli.bnd +0 -0
  18. data/lib/clidriver/bnd/db2cli.lst +4 -0
  19. data/lib/clidriver/bnd/db2clipk.bnd +0 -0
  20. data/lib/clidriver/bnd/db2clist.bnd +0 -0
  21. data/lib/clidriver/bnd/db2spcdb.bnd +0 -0
  22. data/lib/clidriver/cfg/DigiCertGlobalRootCA.arm +22 -0
  23. data/lib/clidriver/cfg/db2cli.ini.sample +16 -0
  24. data/lib/clidriver/cfg/db2dsdriver.cfg.sample +50 -0
  25. data/lib/clidriver/cfg/db2dsdriver.xsd +216 -0
  26. data/lib/clidriver/cfgcache/conlic.bin +0 -0
  27. data/lib/clidriver/conv/alt/04370923.cnv +0 -0
  28. data/lib/clidriver/conv/alt/08500923.cnv +0 -0
  29. data/lib/clidriver/conv/alt/08501252.cnv +0 -0
  30. data/lib/clidriver/conv/alt/08600923.cnv +0 -0
  31. data/lib/clidriver/conv/alt/08630923.cnv +0 -0
  32. data/lib/clidriver/conv/alt/09230437.cnv +0 -0
  33. data/lib/clidriver/conv/alt/09230850.cnv +0 -0
  34. data/lib/clidriver/conv/alt/09230860.cnv +0 -0
  35. data/lib/clidriver/conv/alt/09231043.cnv +0 -0
  36. data/lib/clidriver/conv/alt/09231051.cnv +0 -0
  37. data/lib/clidriver/conv/alt/09231114.cnv +0 -0
  38. data/lib/clidriver/conv/alt/09231208.cnv +0 -0
  39. data/lib/clidriver/conv/alt/09231252.cnv +0 -0
  40. data/lib/clidriver/conv/alt/09231275.cnv +0 -0
  41. data/lib/clidriver/conv/alt/09241252.cnv +0 -0
  42. data/lib/clidriver/conv/alt/09370950.cnv +0 -0
  43. data/lib/clidriver/conv/alt/10430923.cnv +0 -0
  44. data/lib/clidriver/conv/alt/10510923.cnv +0 -0
  45. data/lib/clidriver/conv/alt/11140923.cnv +0 -0
  46. data/lib/clidriver/conv/alt/12080923.cnv +0 -0
  47. data/lib/clidriver/conv/alt/12520850.cnv +0 -0
  48. data/lib/clidriver/conv/alt/12520923.cnv +0 -0
  49. data/lib/clidriver/conv/alt/12750923.cnv +0 -0
  50. data/lib/clidriver/conv/alt/1388ucs2.cnv +0 -0
  51. data/lib/clidriver/conv/alt/IBM00850.ucs +0 -0
  52. data/lib/clidriver/conv/alt/IBM00923.ucs +0 -0
  53. data/lib/clidriver/conv/alt/IBM01252.ucs +0 -0
  54. data/lib/clidriver/conv/ms/0930ucs2.cnv +0 -0
  55. data/lib/clidriver/conv/ms/0939ucs2.cnv +0 -0
  56. data/lib/clidriver/conv/ms/0943ucs2.cnv +0 -0
  57. data/lib/clidriver/conv/ms/0954ucs2.cnv +0 -0
  58. data/lib/clidriver/conv/ms/1390ucs2.cnv +0 -0
  59. data/lib/clidriver/conv/ms/1399ucs2.cnv +0 -0
  60. data/lib/clidriver/conv/ms/5039ucs2.cnv +0 -0
  61. data/lib/clidriver/conv/ms/ucs20943.cnv +0 -0
  62. data/lib/clidriver/include/sql.h +3149 -0
  63. data/lib/clidriver/include/sqlca.h +119 -0
  64. data/lib/clidriver/include/sqlcli.h +1042 -0
  65. data/lib/clidriver/include/sqlcli1.h +1963 -0
  66. data/lib/clidriver/include/sqlda.h +303 -0
  67. data/lib/clidriver/include/sqlenv.h +7389 -0
  68. data/lib/clidriver/include/sqlext.h +2189 -0
  69. data/lib/clidriver/include/sqlstate.h +1397 -0
  70. data/lib/clidriver/include/sqlsystm.h +119 -0
  71. data/lib/clidriver/include/sqltypes.h +22 -0
  72. data/lib/clidriver/include/sqlucode.h +22 -0
  73. data/lib/clidriver/include/sqlunx.h +24 -0
  74. data/lib/clidriver/lib/icc/C/icc/icclib/ICCSIG.txt +23 -0
  75. data/lib/clidriver/lib/icc/C/icc/icclib/libicclib084.so +0 -0
  76. data/lib/clidriver/lib/icc/N/icc/icclib/ICCSIG.txt +23 -0
  77. data/lib/clidriver/lib/icc/N/icc/icclib/libicclib085.so +0 -0
  78. data/lib/clidriver/lib/icc/libgsk8cms_64.so +0 -0
  79. data/lib/clidriver/lib/icc/libgsk8dbfl_64.so +0 -0
  80. data/lib/clidriver/lib/icc/libgsk8iccs_64.so +0 -0
  81. data/lib/clidriver/lib/icc/libgsk8kicc_64.so +0 -0
  82. data/lib/clidriver/lib/icc/libgsk8km_64.so +0 -0
  83. data/lib/clidriver/lib/icc/libgsk8ssl_64.so +0 -0
  84. data/lib/clidriver/lib/icc/libgsk8sys_64.so +0 -0
  85. data/lib/clidriver/lib/icc/libgsk8valn_64.so +0 -0
  86. data/lib/clidriver/lib/libDB2xml4c.so +1 -0
  87. data/lib/clidriver/lib/libDB2xml4c.so.58 +1 -0
  88. data/lib/clidriver/lib/libDB2xml4c.so.58.0 +0 -0
  89. data/lib/clidriver/lib/libdb2.so +1 -0
  90. data/lib/clidriver/lib/libdb2.so.1 +0 -0
  91. data/lib/clidriver/lib/libdb2clixml4c.so +1 -0
  92. data/lib/clidriver/lib/libdb2clixml4c.so.1 +0 -0
  93. data/lib/clidriver/license/UNIX/odbc_LI_cs +278 -0
  94. data/lib/clidriver/license/UNIX/odbc_LI_de +364 -0
  95. data/lib/clidriver/license/UNIX/odbc_LI_el +294 -0
  96. data/lib/clidriver/license/UNIX/odbc_LI_en +752 -0
  97. data/lib/clidriver/license/UNIX/odbc_LI_es +338 -0
  98. data/lib/clidriver/license/UNIX/odbc_LI_fr +396 -0
  99. data/lib/clidriver/license/UNIX/odbc_LI_in +270 -0
  100. data/lib/clidriver/license/UNIX/odbc_LI_it +316 -0
  101. data/lib/clidriver/license/UNIX/odbc_LI_ja +246 -0
  102. data/lib/clidriver/license/UNIX/odbc_LI_ko +240 -0
  103. data/lib/clidriver/license/UNIX/odbc_LI_lt +302 -0
  104. data/lib/clidriver/license/UNIX/odbc_LI_pl +292 -0
  105. data/lib/clidriver/license/UNIX/odbc_LI_pt +314 -0
  106. data/lib/clidriver/license/UNIX/odbc_LI_ru +296 -0
  107. data/lib/clidriver/license/UNIX/odbc_LI_sl +278 -0
  108. data/lib/clidriver/license/UNIX/odbc_LI_tr +296 -0
  109. data/lib/clidriver/license/UNIX/odbc_LI_zh +310 -0
  110. data/lib/clidriver/license/UNIX/odbc_LI_zh_TW +310 -0
  111. data/lib/clidriver/license/odbc_REDIST.txt +128 -0
  112. data/lib/clidriver/license/odbc_notices.txt +444 -0
  113. data/lib/clidriver/msg/en_US.iso88591/db2adm.mo +0 -0
  114. data/lib/clidriver/msg/en_US.iso88591/db2admh.mo +0 -0
  115. data/lib/clidriver/msg/en_US.iso88591/db2caem.mo +0 -0
  116. data/lib/clidriver/msg/en_US.iso88591/db2cklog.mo +0 -0
  117. data/lib/clidriver/msg/en_US.iso88591/db2cli.mo +0 -0
  118. data/lib/clidriver/msg/en_US.iso88591/db2clia1.lst +35 -0
  119. data/lib/clidriver/msg/en_US.iso88591/db2clias.lst +21 -0
  120. data/lib/clidriver/msg/en_US.iso88591/db2clih.mo +0 -0
  121. data/lib/clidriver/msg/en_US.iso88591/db2clit.mo +0 -0
  122. data/lib/clidriver/msg/en_US.iso88591/db2clp.mo +0 -0
  123. data/lib/clidriver/msg/en_US.iso88591/db2clp2.mo +0 -0
  124. data/lib/clidriver/msg/en_US.iso88591/db2diag.mo +0 -0
  125. data/lib/clidriver/msg/en_US.iso88591/db2fodc.mo +0 -0
  126. data/lib/clidriver/msg/en_US.iso88591/db2sql.mo +0 -0
  127. data/lib/clidriver/msg/en_US.iso88591/db2sqlh.mo +0 -0
  128. data/lib/clidriver/msg/en_US.iso88591/db2stt.mo +0 -0
  129. data/lib/clidriver/msg/en_US.iso88591/db2supp.mo +0 -0
  130. data/lib/clidriver/security64/plugin/IBM/client/IBMIAMauth.so +0 -0
  131. data/lib/clidriver/security64/plugin/IBM/client/IBMkrb5.so +0 -0
  132. metadata +131 -2
@@ -0,0 +1,2189 @@
1
+ /*-----------------------------------------------------------------------------
2
+ // File: sqlext.h
3
+ //
4
+ // Copyright: Copyright (c) Microsoft Corporation
5
+ //
6
+ // Contents: This is the include for applications using the Microsoft SQL Extensions
7
+ //
8
+ // Comments:
9
+ //
10
+ //----------------------------------------------------------------------------- */
11
+
12
+ #ifndef __SQLEXT
13
+ #define __SQLEXT
14
+
15
+ #ifndef __SQL
16
+ #include "sql.h"
17
+ #endif
18
+
19
+ #ifdef __cplusplus
20
+ extern "C" { /* Assume C declarations for C++ */
21
+ #endif /* __cplusplus */
22
+
23
+ /* generally useful constants */
24
+ #define SQL_SPEC_MAJOR 3 /* Major version of specification */
25
+ #define SQL_SPEC_MINOR 80 /* Minor version of specification */
26
+ #define SQL_SPEC_STRING "03.80" /* String constant for version */
27
+
28
+ #define SQL_SQLSTATE_SIZE 5 /* size of SQLSTATE */
29
+
30
+ typedef SQLTCHAR SQLSTATE[SQL_SQLSTATE_SIZE+1];
31
+
32
+ #define SQL_MAX_DSN_LENGTH 32 /* maximum data source name size */
33
+
34
+ #define SQL_MAX_OPTION_STRING_LENGTH 256
35
+
36
+ /* return code SQL_NO_DATA_FOUND is the same as SQL_NO_DATA */
37
+ #if (ODBCVER < 0x0300)
38
+ #define SQL_NO_DATA_FOUND 100
39
+ #else
40
+ #define SQL_NO_DATA_FOUND SQL_NO_DATA
41
+ #endif
42
+
43
+ /* an end handle type */
44
+ #if (ODBCVER >= 0x0300)
45
+ #define SQL_HANDLE_SENV 5
46
+ #endif /* ODBCVER >= 0x0300 */
47
+
48
+ /* env attribute */
49
+ #if (ODBCVER >= 0x0300)
50
+ #define SQL_ATTR_ODBC_VERSION 200
51
+ #define SQL_ATTR_CONNECTION_POOLING 201
52
+ #define SQL_ATTR_CP_MATCH 202
53
+ #endif /* ODBCVER >= 0x0300 */
54
+
55
+ #if (ODBCVER >= 0x0300)
56
+ /* values for SQL_ATTR_CONNECTION_POOLING */
57
+ #define SQL_CP_OFF 0UL
58
+ #define SQL_CP_ONE_PER_DRIVER 1UL
59
+ #define SQL_CP_ONE_PER_HENV 2UL
60
+ #define SQL_CP_DEFAULT SQL_CP_OFF
61
+
62
+ /* values for SQL_ATTR_CP_MATCH */
63
+ #define SQL_CP_STRICT_MATCH 0UL
64
+ #define SQL_CP_RELAXED_MATCH 1UL
65
+ #define SQL_CP_MATCH_DEFAULT SQL_CP_STRICT_MATCH
66
+
67
+ /* values for SQL_ATTR_ODBC_VERSION */
68
+ #define SQL_OV_ODBC2 2UL
69
+ #define SQL_OV_ODBC3 3UL
70
+ #endif /* ODBCVER >= 0x0300 */
71
+
72
+ #if (ODBCVER >= 0x0380)
73
+ /* new values for SQL_ATTR_ODBC_VERSION
74
+ From ODBC 3.8 onwards, we should use <major version> * 100 + <minor version> */
75
+ #define SQL_OV_ODBC3_80 380UL
76
+ #endif /* ODBCVER >= 0x0380 */
77
+
78
+ /* connection attributes */
79
+ #define SQL_ACCESS_MODE 101
80
+ #define SQL_AUTOCOMMIT 102
81
+ #define SQL_LOGIN_TIMEOUT 103
82
+ #define SQL_OPT_TRACE 104
83
+ #define SQL_OPT_TRACEFILE 105
84
+ #define SQL_TRANSLATE_DLL 106
85
+ #define SQL_TRANSLATE_OPTION 107
86
+ #define SQL_TXN_ISOLATION 108
87
+ #define SQL_CURRENT_QUALIFIER 109
88
+ #define SQL_ODBC_CURSORS 110
89
+ #define SQL_QUIET_MODE 111
90
+ #define SQL_PACKET_SIZE 112
91
+
92
+ /* connection attributes with new names */
93
+ #if (ODBCVER >= 0x0300)
94
+ #define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE
95
+ #define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT
96
+ #define SQL_ATTR_CONNECTION_TIMEOUT 113
97
+ #define SQL_ATTR_CURRENT_CATALOG SQL_CURRENT_QUALIFIER
98
+ #define SQL_ATTR_DISCONNECT_BEHAVIOR 114
99
+ #define SQL_ATTR_ENLIST_IN_DTC 1207
100
+ #define SQL_ATTR_ENLIST_IN_XA 1208
101
+ #define SQL_ATTR_LOGIN_TIMEOUT SQL_LOGIN_TIMEOUT
102
+ #define SQL_ATTR_ODBC_CURSORS SQL_ODBC_CURSORS
103
+ #define SQL_ATTR_PACKET_SIZE SQL_PACKET_SIZE
104
+ #define SQL_ATTR_QUIET_MODE SQL_QUIET_MODE
105
+ #define SQL_ATTR_TRACE SQL_OPT_TRACE
106
+ #define SQL_ATTR_TRACEFILE SQL_OPT_TRACEFILE
107
+ #define SQL_ATTR_TRANSLATE_LIB SQL_TRANSLATE_DLL
108
+ #define SQL_ATTR_TRANSLATE_OPTION SQL_TRANSLATE_OPTION
109
+ #define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION
110
+ #endif /* ODBCVER >= 0x0300 */
111
+
112
+ #define SQL_ATTR_CONNECTION_DEAD 1209 /* GetConnectAttr only */
113
+
114
+ #if (ODBCVER >= 0x0351)
115
+ /* ODBC Driver Manager sets this connection attribute to a unicode driver
116
+ (which supports SQLConnectW) when the application is an ANSI application
117
+ (which calls SQLConnect, SQLDriverConnect, or SQLBrowseConnect).
118
+ This is SetConnectAttr only and application does not set this attribute
119
+ This attribute was introduced because some unicode driver's some APIs may
120
+ need to behave differently on ANSI or Unicode applications. A unicode
121
+ driver, which has same behavior for both ANSI or Unicode applications,
122
+ should return SQL_ERROR when the driver manager sets this connection
123
+ attribute. When a unicode driver returns SQL_SUCCESS on this attribute,
124
+ the driver manager treates ANSI and Unicode connections differently in
125
+ connection pooling.
126
+ */
127
+ #define SQL_ATTR_ANSI_APP 115
128
+ #endif
129
+
130
+ #if (ODBCVER >= 0x0380)
131
+ #define SQL_ATTR_RESET_CONNECTION 116
132
+ #define SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE 117
133
+ #endif
134
+
135
+
136
+ /* SQL_CONNECT_OPT_DRVR_START is not meaningful for 3.0 driver */
137
+ #if (ODBCVER < 0x0300)
138
+ #define SQL_CONNECT_OPT_DRVR_START 1000
139
+ #endif /* ODBCVER < 0x0300 */
140
+
141
+ #if (ODBCVER < 0x0300)
142
+ #define SQL_CONN_OPT_MAX SQL_PACKET_SIZE
143
+ #define SQL_CONN_OPT_MIN SQL_ACCESS_MODE
144
+ #endif /* ODBCVER < 0x0300 */
145
+
146
+ /* SQL_ACCESS_MODE options */
147
+ #define SQL_MODE_READ_WRITE 0UL
148
+ #define SQL_MODE_READ_ONLY 1UL
149
+ #define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE
150
+
151
+ /* SQL_AUTOCOMMIT options */
152
+ #define SQL_AUTOCOMMIT_OFF 0UL
153
+ #define SQL_AUTOCOMMIT_ON 1UL
154
+ #define SQL_AUTOCOMMIT_DEFERRED 2UL
155
+ #define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON
156
+
157
+ /* SQL_LOGIN_TIMEOUT options */
158
+ #define SQL_LOGIN_TIMEOUT_DEFAULT 15UL
159
+
160
+ /* SQL_OPT_TRACE options */
161
+ #define SQL_OPT_TRACE_OFF 0UL
162
+ #define SQL_OPT_TRACE_ON 1UL
163
+ #define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF
164
+ #define SQL_OPT_TRACE_FILE_DEFAULT "\\SQL.LOG"
165
+
166
+ /* SQL_ODBC_CURSORS options */
167
+ #define SQL_CUR_USE_IF_NEEDED 0UL
168
+ #define SQL_CUR_USE_ODBC 1UL
169
+ #define SQL_CUR_USE_DRIVER 2UL
170
+ #define SQL_CUR_DEFAULT SQL_CUR_USE_DRIVER
171
+
172
+ #if (ODBCVER >= 0x0300)
173
+ /* values for SQL_ATTR_DISCONNECT_BEHAVIOR */
174
+ #define SQL_DB_RETURN_TO_POOL 0UL
175
+ #define SQL_DB_DISCONNECT 1UL
176
+ #define SQL_DB_DEFAULT SQL_DB_RETURN_TO_POOL
177
+
178
+ /* values for SQL_ATTR_ENLIST_IN_DTC */
179
+ #define SQL_DTC_DONE 0L
180
+ #endif /* ODBCVER >= 0x0300 */
181
+
182
+ /* values for SQL_ATTR_CONNECTION_DEAD */
183
+ #define SQL_CD_TRUE 1L /* Connection is closed/dead */
184
+ #define SQL_CD_FALSE 0L /* Connection is open/available */
185
+
186
+ /* values for SQL_ATTR_ANSI_APP */
187
+ #if (ODBCVER >= 0x0351)
188
+ #define SQL_AA_TRUE 1L /* the application is an ANSI app */
189
+ #define SQL_AA_FALSE 0L /* the application is a Unicode app */
190
+ #endif
191
+
192
+ /* values for SQL_ATTR_RESET_CONNECTION */
193
+ #if (ODBCVER >= 0x0380)
194
+ #define SQL_RESET_CONNECTION_YES 1UL
195
+ #endif
196
+
197
+ /* values for SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE */
198
+ #if (ODBCVER >= 0x0380)
199
+ #define SQL_ASYNC_DBC_ENABLE_ON 1UL
200
+ #define SQL_ASYNC_DBC_ENABLE_OFF 0UL
201
+ #define SQL_ASYNC_DBC_ENABLE_DEFAULT SQL_ASYNC_DBC_ENABLE_OFF
202
+ #endif /* ODBCVER >= 0x0380 */
203
+
204
+ /* statement attributes */
205
+ #define SQL_QUERY_TIMEOUT 0
206
+ #define SQL_MAX_ROWS 1
207
+ #define SQL_NOSCAN 2
208
+ #define SQL_MAX_LENGTH 3
209
+ #define SQL_ASYNC_ENABLE 4 /* same as SQL_ATTR_ASYNC_ENABLE */
210
+ #define SQL_BIND_TYPE 5
211
+ #define SQL_CURSOR_TYPE 6
212
+ #define SQL_CONCURRENCY 7
213
+ #define SQL_KEYSET_SIZE 8
214
+ #define SQL_ROWSET_SIZE 9
215
+ #define SQL_SIMULATE_CURSOR 10
216
+ #define SQL_RETRIEVE_DATA 11
217
+ #define SQL_USE_BOOKMARKS 12
218
+ #define SQL_GET_BOOKMARK 13 /* GetStmtOption Only */
219
+ #define SQL_ROW_NUMBER 14 /* GetStmtOption Only */
220
+
221
+ /* statement attributes for ODBC 3.0 */
222
+ #if (ODBCVER >= 0x0300)
223
+ #define SQL_ATTR_ASYNC_ENABLE 4
224
+ #define SQL_ATTR_CONCURRENCY SQL_CONCURRENCY
225
+ #define SQL_ATTR_CURSOR_TYPE SQL_CURSOR_TYPE
226
+ #define SQL_ATTR_ENABLE_AUTO_IPD 15
227
+ #define SQL_ATTR_FETCH_BOOKMARK_PTR 16
228
+ #define SQL_ATTR_KEYSET_SIZE SQL_KEYSET_SIZE
229
+ #define SQL_ATTR_MAX_LENGTH SQL_MAX_LENGTH
230
+ #define SQL_ATTR_MAX_ROWS SQL_MAX_ROWS
231
+ #define SQL_ATTR_NOSCAN SQL_NOSCAN
232
+ #define SQL_ATTR_PARAM_BIND_OFFSET_PTR 17
233
+ #define SQL_ATTR_PARAM_BIND_TYPE 18
234
+ #define SQL_ATTR_PARAM_OPERATION_PTR 19
235
+ #define SQL_ATTR_PARAM_STATUS_PTR 20
236
+ #define SQL_ATTR_PARAMS_PROCESSED_PTR 21
237
+ #define SQL_ATTR_PARAMSET_SIZE 22
238
+ #define SQL_ATTR_QUERY_TIMEOUT SQL_QUERY_TIMEOUT
239
+ #define SQL_ATTR_RETRIEVE_DATA SQL_RETRIEVE_DATA
240
+ #define SQL_ATTR_ROW_BIND_OFFSET_PTR 23
241
+ #define SQL_ATTR_ROW_BIND_TYPE SQL_BIND_TYPE
242
+ #define SQL_ATTR_ROW_NUMBER SQL_ROW_NUMBER /*GetStmtAttr*/
243
+ #define SQL_ATTR_ROW_OPERATION_PTR 24
244
+ #define SQL_ATTR_ROW_STATUS_PTR 25
245
+ #define SQL_ATTR_ROWS_FETCHED_PTR 26
246
+ #define SQL_ATTR_ROW_ARRAY_SIZE 27
247
+ #define SQL_ATTR_SIMULATE_CURSOR SQL_SIMULATE_CURSOR
248
+ #define SQL_ATTR_USE_BOOKMARKS SQL_USE_BOOKMARKS
249
+
250
+ #endif /* ODBCVER >= 0x0300 */
251
+
252
+ #if (ODBCVER < 0x0300)
253
+ #define SQL_STMT_OPT_MAX SQL_ROW_NUMBER
254
+ #define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT
255
+ #endif /* ODBCVER < 0x0300 */
256
+
257
+ /* New defines for SEARCHABLE column in SQLGetTypeInfo */
258
+
259
+ #if (ODBCVER >= 0x0300)
260
+ #define SQL_COL_PRED_CHAR SQL_LIKE_ONLY
261
+ #define SQL_COL_PRED_BASIC SQL_ALL_EXCEPT_LIKE
262
+ #endif /* ODBCVER >= 0x0300 */
263
+
264
+
265
+
266
+ /* whether an attribute is a pointer or not */
267
+ #if (ODBCVER >= 0x0300)
268
+ #define SQL_IS_POINTER (-4)
269
+ #define SQL_IS_UINTEGER (-5)
270
+ #define SQL_IS_INTEGER (-6)
271
+ #define SQL_IS_USMALLINT (-7)
272
+ #define SQL_IS_SMALLINT (-8)
273
+ #endif /* ODBCVER >= 0x0300 */
274
+
275
+ /* the value of SQL_ATTR_PARAM_BIND_TYPE */
276
+ #if (ODBCVER >= 0x0300)
277
+ #define SQL_PARAM_BIND_BY_COLUMN 0UL
278
+ #define SQL_PARAM_BIND_TYPE_DEFAULT SQL_PARAM_BIND_BY_COLUMN
279
+ #endif /* ODBCVER >= 0x0300 */
280
+
281
+ /* SQL_QUERY_TIMEOUT options */
282
+ #define SQL_QUERY_TIMEOUT_DEFAULT 0UL
283
+
284
+ /* SQL_MAX_ROWS options */
285
+ #define SQL_MAX_ROWS_DEFAULT 0UL
286
+
287
+ /* SQL_NOSCAN options */
288
+ #define SQL_NOSCAN_OFF 0UL /* 1.0 FALSE */
289
+ #define SQL_NOSCAN_ON 1UL /* 1.0 TRUE */
290
+ #define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF
291
+
292
+ /* SQL_MAX_LENGTH options */
293
+ #define SQL_MAX_LENGTH_DEFAULT 0UL
294
+
295
+ /* values for SQL_ATTR_ASYNC_ENABLE */
296
+ #define SQL_ASYNC_ENABLE_OFF 0UL
297
+ #define SQL_ASYNC_ENABLE_ON 1UL
298
+ #define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF
299
+
300
+ /* SQL_BIND_TYPE options */
301
+ #define SQL_BIND_BY_COLUMN 0UL
302
+ #define SQL_BIND_TYPE_DEFAULT SQL_BIND_BY_COLUMN /* Default value */
303
+
304
+ /* SQL_CONCURRENCY options */
305
+ #define SQL_CONCUR_READ_ONLY 1
306
+ #define SQL_CONCUR_LOCK 2
307
+ #define SQL_CONCUR_ROWVER 3
308
+ #define SQL_CONCUR_VALUES 4
309
+ #define SQL_CONCUR_DEFAULT SQL_CONCUR_READ_ONLY /* Default value */
310
+
311
+ /* SQL_CURSOR_TYPE options */
312
+ #define SQL_CURSOR_FORWARD_ONLY 0UL
313
+ #define SQL_CURSOR_KEYSET_DRIVEN 1UL
314
+ #define SQL_CURSOR_DYNAMIC 2UL
315
+ #define SQL_CURSOR_STATIC 3UL
316
+ #define SQL_CURSOR_TYPE_DEFAULT SQL_CURSOR_FORWARD_ONLY /* Default value */
317
+
318
+ /* SQL_ROWSET_SIZE options */
319
+ #define SQL_ROWSET_SIZE_DEFAULT 1UL
320
+
321
+ /* SQL_KEYSET_SIZE options */
322
+ #define SQL_KEYSET_SIZE_DEFAULT 0UL
323
+
324
+ /* SQL_SIMULATE_CURSOR options */
325
+ #define SQL_SC_NON_UNIQUE 0UL
326
+ #define SQL_SC_TRY_UNIQUE 1UL
327
+ #define SQL_SC_UNIQUE 2UL
328
+
329
+ /* SQL_RETRIEVE_DATA options */
330
+ #define SQL_RD_OFF 0UL
331
+ #define SQL_RD_ON 1UL
332
+ #define SQL_RD_DEFAULT SQL_RD_ON
333
+
334
+ /* SQL_USE_BOOKMARKS options */
335
+ #define SQL_UB_OFF 0UL
336
+ #define SQL_UB_ON 01UL
337
+ #define SQL_UB_DEFAULT SQL_UB_OFF
338
+
339
+ /* New values for SQL_USE_BOOKMARKS attribute */
340
+ #if (ODBCVER >= 0x0300)
341
+ #define SQL_UB_FIXED SQL_UB_ON
342
+ #define SQL_UB_VARIABLE 2UL
343
+ #endif /* ODBCVER >= 0x0300 */
344
+
345
+ /* extended descriptor field */
346
+ #if (ODBCVER >= 0x0300)
347
+ #define SQL_DESC_ARRAY_SIZE 20
348
+ #define SQL_DESC_ARRAY_STATUS_PTR 21
349
+ #define SQL_DESC_AUTO_UNIQUE_VALUE SQL_COLUMN_AUTO_INCREMENT
350
+ #define SQL_DESC_BASE_COLUMN_NAME 22
351
+ #define SQL_DESC_BASE_TABLE_NAME 23
352
+ #define SQL_DESC_BIND_OFFSET_PTR 24
353
+ #define SQL_DESC_BIND_TYPE 25
354
+ #define SQL_DESC_CASE_SENSITIVE SQL_COLUMN_CASE_SENSITIVE
355
+ #define SQL_DESC_CATALOG_NAME SQL_COLUMN_QUALIFIER_NAME
356
+ #define SQL_DESC_CONCISE_TYPE SQL_COLUMN_TYPE
357
+ #define SQL_DESC_DATETIME_INTERVAL_PRECISION 26
358
+ #define SQL_DESC_DISPLAY_SIZE SQL_COLUMN_DISPLAY_SIZE
359
+ #define SQL_DESC_FIXED_PREC_SCALE SQL_COLUMN_MONEY
360
+ #define SQL_DESC_LABEL SQL_COLUMN_LABEL
361
+ #define SQL_DESC_LITERAL_PREFIX 27
362
+ #define SQL_DESC_LITERAL_SUFFIX 28
363
+ #define SQL_DESC_LOCAL_TYPE_NAME 29
364
+ #define SQL_DESC_MAXIMUM_SCALE 30
365
+ #define SQL_DESC_MINIMUM_SCALE 31
366
+ #define SQL_DESC_NUM_PREC_RADIX 32
367
+ #define SQL_DESC_PARAMETER_TYPE 33
368
+ #define SQL_DESC_ROWS_PROCESSED_PTR 34
369
+ #if (ODBCVER >= 0x0350)
370
+ #define SQL_DESC_ROWVER 35
371
+ #endif /* ODBCVER >= 0x0350 */
372
+ #define SQL_DESC_SCHEMA_NAME SQL_COLUMN_OWNER_NAME
373
+ #define SQL_DESC_SEARCHABLE SQL_COLUMN_SEARCHABLE
374
+ #define SQL_DESC_TYPE_NAME SQL_COLUMN_TYPE_NAME
375
+ #define SQL_DESC_TABLE_NAME SQL_COLUMN_TABLE_NAME
376
+ #define SQL_DESC_UNSIGNED SQL_COLUMN_UNSIGNED
377
+ #define SQL_DESC_UPDATABLE SQL_COLUMN_UPDATABLE
378
+ #endif /* ODBCVER >= 0x0300 */
379
+
380
+
381
+ /* defines for diagnostics fields */
382
+ #if (ODBCVER >= 0x0300)
383
+ #define SQL_DIAG_CURSOR_ROW_COUNT (-1249)
384
+ #define SQL_DIAG_ROW_NUMBER (-1248)
385
+ #define SQL_DIAG_COLUMN_NUMBER (-1247)
386
+ #endif /* ODBCVER >= 0x0300 */
387
+
388
+ /* SQL extended datatypes */
389
+ #define SQL_DATE 9
390
+ #if (ODBCVER >= 0x0300)
391
+ #define SQL_INTERVAL 10
392
+ #endif /* ODBCVER >= 0x0300 */
393
+ #define SQL_TIME 10
394
+ #define SQL_TIMESTAMP 11
395
+ #define SQL_LONGVARCHAR (-1)
396
+ #define SQL_BINARY (-2)
397
+ #define SQL_VARBINARY (-3)
398
+ #define SQL_LONGVARBINARY (-4)
399
+ #define SQL_BIGINT (-5)
400
+ #define SQL_TINYINT (-6)
401
+ #define SQL_BIT (-7)
402
+ #if (ODBCVER >= 0x0350)
403
+ #define SQL_GUID (-11)
404
+ #endif /* ODBCVER >= 0x0350 */
405
+
406
+ #if (ODBCVER >= 0x0300)
407
+ /* interval code */
408
+ #define SQL_CODE_YEAR 1
409
+ #define SQL_CODE_MONTH 2
410
+ #define SQL_CODE_DAY 3
411
+ #define SQL_CODE_HOUR 4
412
+ #define SQL_CODE_MINUTE 5
413
+ #define SQL_CODE_SECOND 6
414
+ #define SQL_CODE_YEAR_TO_MONTH 7
415
+ #define SQL_CODE_DAY_TO_HOUR 8
416
+ #define SQL_CODE_DAY_TO_MINUTE 9
417
+ #define SQL_CODE_DAY_TO_SECOND 10
418
+ #define SQL_CODE_HOUR_TO_MINUTE 11
419
+ #define SQL_CODE_HOUR_TO_SECOND 12
420
+ #define SQL_CODE_MINUTE_TO_SECOND 13
421
+
422
+ #define SQL_INTERVAL_YEAR (100 + SQL_CODE_YEAR)
423
+ #define SQL_INTERVAL_MONTH (100 + SQL_CODE_MONTH)
424
+ #define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY)
425
+ #define SQL_INTERVAL_HOUR (100 + SQL_CODE_HOUR)
426
+ #define SQL_INTERVAL_MINUTE (100 + SQL_CODE_MINUTE)
427
+ #define SQL_INTERVAL_SECOND (100 + SQL_CODE_SECOND)
428
+ #define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_YEAR_TO_MONTH)
429
+ #define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_DAY_TO_HOUR)
430
+ #define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE)
431
+ #define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND)
432
+ #define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE)
433
+ #define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND)
434
+ #define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND)
435
+
436
+ #else
437
+ #define SQL_INTERVAL_YEAR (-80)
438
+ #define SQL_INTERVAL_MONTH (-81)
439
+ #define SQL_INTERVAL_YEAR_TO_MONTH (-82)
440
+ #define SQL_INTERVAL_DAY (-83)
441
+ #define SQL_INTERVAL_HOUR (-84)
442
+ #define SQL_INTERVAL_MINUTE (-85)
443
+ #define SQL_INTERVAL_SECOND (-86)
444
+ #define SQL_INTERVAL_DAY_TO_HOUR (-87)
445
+ #define SQL_INTERVAL_DAY_TO_MINUTE (-88)
446
+ #define SQL_INTERVAL_DAY_TO_SECOND (-89)
447
+ #define SQL_INTERVAL_HOUR_TO_MINUTE (-90)
448
+ #define SQL_INTERVAL_HOUR_TO_SECOND (-91)
449
+ #define SQL_INTERVAL_MINUTE_TO_SECOND (-92)
450
+ #endif /* ODBCVER >= 0x0300 */
451
+
452
+
453
+ #if (ODBCVER <= 0x0300)
454
+ #define SQL_UNICODE (-95)
455
+ #define SQL_UNICODE_VARCHAR (-96)
456
+ #define SQL_UNICODE_LONGVARCHAR (-97)
457
+ #define SQL_UNICODE_CHAR SQL_UNICODE
458
+ #else
459
+ /* The previous definitions for SQL_UNICODE_ are historical and obsolete */
460
+
461
+ #define SQL_UNICODE SQL_WCHAR
462
+
463
+ #define SQL_UNICODE_VARCHAR SQL_WVARCHAR
464
+ #define SQL_UNICODE_LONGVARCHAR SQL_WLONGVARCHAR
465
+ #define SQL_UNICODE_CHAR SQL_WCHAR
466
+ #endif
467
+
468
+ #if (ODBCVER < 0x0300)
469
+ #define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR
470
+ #define SQL_TYPE_DRIVER_END SQL_UNICODE_LONGVARCHAR
471
+ #endif /* ODBCVER < 0x0300 */
472
+
473
+ /* C datatype to SQL datatype mapping SQL types
474
+ ------------------- */
475
+ #define SQL_C_CHAR SQL_CHAR /* CHAR, VARCHAR, DECIMAL, NUMERIC */
476
+ #define SQL_C_LONG SQL_INTEGER /* INTEGER */
477
+ #define SQL_C_SHORT SQL_SMALLINT /* SMALLINT */
478
+ #define SQL_C_FLOAT SQL_REAL /* REAL */
479
+ #define SQL_C_DOUBLE SQL_DOUBLE /* FLOAT, DOUBLE */
480
+ #if (ODBCVER >= 0x0300)
481
+ #define SQL_C_NUMERIC SQL_NUMERIC
482
+ #endif /* ODBCVER >= 0x0300 */
483
+ #define SQL_C_DEFAULT 99
484
+
485
+ #define SQL_SIGNED_OFFSET (-20)
486
+ #define SQL_UNSIGNED_OFFSET (-22)
487
+
488
+ /* C datatype to SQL datatype mapping */
489
+ #define SQL_C_DATE SQL_DATE
490
+ #define SQL_C_TIME SQL_TIME
491
+ #define SQL_C_TIMESTAMP SQL_TIMESTAMP
492
+ #if (ODBCVER >= 0x0300)
493
+ #define SQL_C_TYPE_DATE SQL_TYPE_DATE
494
+ #define SQL_C_TYPE_TIME SQL_TYPE_TIME
495
+ #define SQL_C_TYPE_TIMESTAMP SQL_TYPE_TIMESTAMP
496
+ #define SQL_C_INTERVAL_YEAR SQL_INTERVAL_YEAR
497
+ #define SQL_C_INTERVAL_MONTH SQL_INTERVAL_MONTH
498
+ #define SQL_C_INTERVAL_DAY SQL_INTERVAL_DAY
499
+ #define SQL_C_INTERVAL_HOUR SQL_INTERVAL_HOUR
500
+ #define SQL_C_INTERVAL_MINUTE SQL_INTERVAL_MINUTE
501
+ #define SQL_C_INTERVAL_SECOND SQL_INTERVAL_SECOND
502
+ #define SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_YEAR_TO_MONTH
503
+ #define SQL_C_INTERVAL_DAY_TO_HOUR SQL_INTERVAL_DAY_TO_HOUR
504
+ #define SQL_C_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL_DAY_TO_MINUTE
505
+ #define SQL_C_INTERVAL_DAY_TO_SECOND SQL_INTERVAL_DAY_TO_SECOND
506
+ #define SQL_C_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL_HOUR_TO_MINUTE
507
+ #define SQL_C_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL_HOUR_TO_SECOND
508
+ #define SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL_MINUTE_TO_SECOND
509
+ #endif /* ODBCVER >= 0x0300 */
510
+ #define SQL_C_BINARY SQL_BINARY
511
+ #define SQL_C_BIT SQL_BIT
512
+ #if (ODBCVER >= 0x0300)
513
+ #define SQL_C_SBIGINT (SQL_BIGINT+SQL_SIGNED_OFFSET) /* SIGNED BIGINT */
514
+ #define SQL_C_UBIGINT (SQL_BIGINT+SQL_UNSIGNED_OFFSET) /* UNSIGNED BIGINT */
515
+ #endif /* ODBCVER >= 0x0300 */
516
+ #define SQL_C_TINYINT SQL_TINYINT
517
+ #define SQL_C_SLONG (SQL_C_LONG+SQL_SIGNED_OFFSET) /* SIGNED INTEGER */
518
+ #define SQL_C_SSHORT (SQL_C_SHORT+SQL_SIGNED_OFFSET) /* SIGNED SMALLINT */
519
+ #define SQL_C_STINYINT (SQL_TINYINT+SQL_SIGNED_OFFSET) /* SIGNED TINYINT */
520
+ #define SQL_C_ULONG (SQL_C_LONG+SQL_UNSIGNED_OFFSET) /* UNSIGNED INTEGER*/
521
+ #define SQL_C_USHORT (SQL_C_SHORT+SQL_UNSIGNED_OFFSET) /* UNSIGNED SMALLINT*/
522
+ #define SQL_C_UTINYINT (SQL_TINYINT+SQL_UNSIGNED_OFFSET) /* UNSIGNED TINYINT*/
523
+
524
+ #ifdef _WIN64
525
+ #define SQL_C_BOOKMARK SQL_C_UBIGINT /* BOOKMARK */
526
+ #else
527
+ #define SQL_C_BOOKMARK SQL_C_ULONG /* BOOKMARK */
528
+ #endif
529
+
530
+ #if (ODBCVER >= 0x0350)
531
+ #define SQL_C_GUID SQL_GUID
532
+ #endif /* ODBCVER >= 0x0350 */
533
+
534
+ #define SQL_TYPE_NULL 0
535
+ #if (ODBCVER < 0x0300)
536
+ #define SQL_TYPE_MIN SQL_BIT
537
+ #define SQL_TYPE_MAX SQL_VARCHAR
538
+ #endif
539
+
540
+ /* base value of driver-specific C-Type (max is 0x7fff)
541
+ define driver-specific C-Type, named as SQL_DRIVER_C_TYPE_BASE,
542
+ SQL_DRIVER_C_TYPE_BASE+1, SQL_DRIVER_C_TYPE_BASE+2, etc. */
543
+ #if (ODBCVER >= 0x380)
544
+ #define SQL_DRIVER_C_TYPE_BASE 0x4000
545
+ #endif
546
+
547
+ /* base value of driver-specific fields/attributes (max are 0x7fff [16-bit] or 0x00007fff [32-bit])
548
+ define driver-specific SQL-Type, named as SQL_DRIVER_SQL_TYPE_BASE,
549
+ SQL_DRIVER_SQL_TYPE_BASE+1, SQL_DRIVER_SQL_TYPE_BASE+2, etc. */
550
+
551
+ /* Please note that there is no runtime change in this version of DM.
552
+ However, we suggest that driver manufacturers adhere to this range
553
+ as future versions of the DM may enforce these constraints */
554
+ #if (ODBCVER >= 0x380)
555
+ #define SQL_DRIVER_SQL_TYPE_BASE 0x4000
556
+ #define SQL_DRIVER_DESC_FIELD_BASE 0x4000
557
+ #define SQL_DRIVER_DIAG_FIELD_BASE 0x4000
558
+ #define SQL_DRIVER_INFO_TYPE_BASE 0x4000
559
+ #define SQL_DRIVER_CONN_ATTR_BASE 0x00004000 /* 32-bit */
560
+ #define SQL_DRIVER_STMT_ATTR_BASE 0x00004000 /* 32-bit */
561
+ #endif
562
+
563
+ #if (ODBCVER >= 0x0300)
564
+ #define SQL_C_VARBOOKMARK SQL_C_BINARY
565
+ #endif /* ODBCVER >= 0x0300 */
566
+
567
+ /* define for SQL_DIAG_ROW_NUMBER and SQL_DIAG_COLUMN_NUMBER */
568
+ #if (ODBCVER >= 0x0300)
569
+ #define SQL_NO_ROW_NUMBER (-1)
570
+ #define SQL_NO_COLUMN_NUMBER (-1)
571
+ #define SQL_ROW_NUMBER_UNKNOWN (-2)
572
+ #define SQL_COLUMN_NUMBER_UNKNOWN (-2)
573
+ #endif
574
+
575
+ /* SQLBindParameter extensions */
576
+ #define SQL_DEFAULT_PARAM (-5)
577
+ #define SQL_IGNORE (-6)
578
+ #if (ODBCVER >= 0x0300)
579
+ #define SQL_COLUMN_IGNORE SQL_IGNORE
580
+ #endif /* ODBCVER >= 0x0300 */
581
+ #define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
582
+ #define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET)
583
+
584
+ /* binary length for driver specific attributes */
585
+ #define SQL_LEN_BINARY_ATTR_OFFSET (-100)
586
+ #define SQL_LEN_BINARY_ATTR(length) (-(length)+SQL_LEN_BINARY_ATTR_OFFSET)
587
+
588
+ /* Defines used by Driver Manager when mapping SQLSetParam to SQLBindParameter
589
+ */
590
+ #define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT
591
+ #define SQL_SETPARAM_VALUE_MAX (-1L)
592
+
593
+ /* SQLColAttributes defines */
594
+ #define SQL_COLUMN_COUNT 0
595
+ #define SQL_COLUMN_NAME 1
596
+ #define SQL_COLUMN_TYPE 2
597
+ #define SQL_COLUMN_LENGTH 3
598
+ #define SQL_COLUMN_PRECISION 4
599
+ #define SQL_COLUMN_SCALE 5
600
+ #define SQL_COLUMN_DISPLAY_SIZE 6
601
+ #define SQL_COLUMN_NULLABLE 7
602
+ #define SQL_COLUMN_UNSIGNED 8
603
+ #define SQL_COLUMN_MONEY 9
604
+ #define SQL_COLUMN_UPDATABLE 10
605
+ #define SQL_COLUMN_AUTO_INCREMENT 11
606
+ #define SQL_COLUMN_CASE_SENSITIVE 12
607
+ #define SQL_COLUMN_SEARCHABLE 13
608
+ #define SQL_COLUMN_TYPE_NAME 14
609
+ #define SQL_COLUMN_TABLE_NAME 15
610
+ #define SQL_COLUMN_OWNER_NAME 16
611
+ #define SQL_COLUMN_QUALIFIER_NAME 17
612
+ #define SQL_COLUMN_LABEL 18
613
+ #define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL
614
+ #if (ODBCVER < 0x0300)
615
+ #define SQL_COLUMN_DRIVER_START 1000
616
+ #endif /* ODBCVER < 0x0300 */
617
+
618
+ #define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT
619
+
620
+ /* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */
621
+ #define SQL_ATTR_READONLY 0
622
+ #define SQL_ATTR_WRITE 1
623
+ #define SQL_ATTR_READWRITE_UNKNOWN 2
624
+
625
+ /* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */
626
+ /* These are also used by SQLGetInfo */
627
+ #define SQL_UNSEARCHABLE 0
628
+ #define SQL_LIKE_ONLY 1
629
+ #define SQL_ALL_EXCEPT_LIKE 2
630
+ #define SQL_SEARCHABLE 3
631
+ #define SQL_PRED_SEARCHABLE SQL_SEARCHABLE
632
+
633
+
634
+ /* Special return values for SQLGetData */
635
+ #define SQL_NO_TOTAL (-4)
636
+
637
+ /********************************************/
638
+ /* SQLGetFunctions: additional values for */
639
+ /* fFunction to represent functions that */
640
+ /* are not in the X/Open spec. */
641
+ /********************************************/
642
+
643
+ #if (ODBCVER >= 0x0300)
644
+ #define SQL_API_SQLALLOCHANDLESTD 73
645
+ #define SQL_API_SQLBULKOPERATIONS 24
646
+ #endif /* ODBCVER >= 0x0300 */
647
+ #define SQL_API_SQLBINDPARAMETER 72
648
+ #define SQL_API_SQLBROWSECONNECT 55
649
+ #define SQL_API_SQLCOLATTRIBUTES 6
650
+ #define SQL_API_SQLCOLUMNPRIVILEGES 56
651
+ #define SQL_API_SQLDESCRIBEPARAM 58
652
+ #define SQL_API_SQLDRIVERCONNECT 41
653
+ #define SQL_API_SQLDRIVERS 71
654
+ #define SQL_API_SQLEXTENDEDFETCH 59
655
+ #define SQL_API_SQLFOREIGNKEYS 60
656
+ #define SQL_API_SQLMORERESULTS 61
657
+ #define SQL_API_SQLNATIVESQL 62
658
+ #define SQL_API_SQLNUMPARAMS 63
659
+ #define SQL_API_SQLPARAMOPTIONS 64
660
+ #define SQL_API_SQLPRIMARYKEYS 65
661
+ #define SQL_API_SQLPROCEDURECOLUMNS 66
662
+ #define SQL_API_SQLPROCEDURES 67
663
+ #define SQL_API_SQLSETPOS 68
664
+ #define SQL_API_SQLSETSCROLLOPTIONS 69
665
+ #define SQL_API_SQLTABLEPRIVILEGES 70
666
+
667
+ /*-------------------------------------------*/
668
+ /* SQL_EXT_API_LAST is not useful with ODBC */
669
+ /* version 3.0 because some of the values */
670
+ /* from X/Open are in the 10000 range. */
671
+ /*-------------------------------------------*/
672
+
673
+ #if (ODBCVER < 0x0300)
674
+ #define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER
675
+ #define SQL_NUM_FUNCTIONS 23
676
+ #define SQL_EXT_API_START 40
677
+ #define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
678
+ #endif
679
+
680
+ /*--------------------------------------------*/
681
+ /* SQL_API_ALL_FUNCTIONS returns an array */
682
+ /* of 'booleans' representing whether a */
683
+ /* function is implemented by the driver. */
684
+ /* */
685
+ /* CAUTION: Only functions defined in ODBC */
686
+ /* version 2.0 and earlier are returned, the */
687
+ /* new high-range function numbers defined by */
688
+ /* X/Open break this scheme. See the new */
689
+ /* method -- SQL_API_ODBC3_ALL_FUNCTIONS */
690
+ /*--------------------------------------------*/
691
+
692
+ #define SQL_API_ALL_FUNCTIONS 0 /* See CAUTION above */
693
+
694
+ /*----------------------------------------------*/
695
+ /* 2.X drivers export a dummy function with */
696
+ /* ordinal number SQL_API_LOADBYORDINAL to speed*/
697
+ /* loading under the windows operating system. */
698
+ /* */
699
+ /* CAUTION: Loading by ordinal is not supported */
700
+ /* for 3.0 and above drivers. */
701
+ /*----------------------------------------------*/
702
+
703
+ #define SQL_API_LOADBYORDINAL 199 /* See CAUTION above */
704
+
705
+ /*----------------------------------------------*/
706
+ /* SQL_API_ODBC3_ALL_FUNCTIONS */
707
+ /* This returns a bitmap, which allows us to */
708
+ /* handle the higher-valued function numbers. */
709
+ /* Use SQL_FUNC_EXISTS(bitmap,function_number) */
710
+ /* to determine if the function exists. */
711
+ /*----------------------------------------------*/
712
+
713
+
714
+ #if (ODBCVER >= 0x0300)
715
+ #define SQL_API_ODBC3_ALL_FUNCTIONS 999
716
+ #define SQL_API_ODBC3_ALL_FUNCTIONS_SIZE 250 /* array of 250 words */
717
+
718
+ #define SQL_FUNC_EXISTS(pfExists, uwAPI) \
719
+ ((*(((UWORD*) (pfExists)) + ((uwAPI) >> 4)) \
720
+ & (1 << ((uwAPI) & 0x000F)) \
721
+ ) ? SQL_TRUE : SQL_FALSE \
722
+ )
723
+ #endif /* ODBCVER >= 0x0300 */
724
+
725
+
726
+ /************************************************/
727
+ /* Extended definitions for SQLGetInfo */
728
+ /************************************************/
729
+
730
+ /*---------------------------------*/
731
+ /* Values in ODBC 2.0 that are not */
732
+ /* in the X/Open spec */
733
+ /*---------------------------------*/
734
+
735
+ #define SQL_INFO_FIRST 0
736
+ #define SQL_ACTIVE_CONNECTIONS 0 /* MAX_DRIVER_CONNECTIONS */
737
+ #define SQL_ACTIVE_STATEMENTS 1 /* MAX_CONCURRENT_ACTIVITIES */
738
+ #define SQL_DRIVER_HDBC 3
739
+ #define SQL_DRIVER_HENV 4
740
+ #define SQL_DRIVER_HSTMT 5
741
+ #define SQL_DRIVER_NAME 6
742
+ #define SQL_DRIVER_VER 7
743
+ #define SQL_ODBC_API_CONFORMANCE 9
744
+ #define SQL_ODBC_VER 10
745
+ #define SQL_ROW_UPDATES 11
746
+ #define SQL_ODBC_SAG_CLI_CONFORMANCE 12
747
+ #define SQL_ODBC_SQL_CONFORMANCE 15
748
+ #define SQL_PROCEDURES 21
749
+ #define SQL_CONCAT_NULL_BEHAVIOR 22
750
+ #define SQL_CURSOR_ROLLBACK_BEHAVIOR 24
751
+ #define SQL_EXPRESSIONS_IN_ORDERBY 27
752
+ #define SQL_MAX_OWNER_NAME_LEN 32 /* MAX_SCHEMA_NAME_LEN */
753
+ #define SQL_MAX_PROCEDURE_NAME_LEN 33
754
+ #define SQL_MAX_QUALIFIER_NAME_LEN 34 /* MAX_CATALOG_NAME_LEN */
755
+ #define SQL_MULT_RESULT_SETS 36
756
+ #define SQL_MULTIPLE_ACTIVE_TXN 37
757
+ #define SQL_OUTER_JOINS 38
758
+ #define SQL_OWNER_TERM 39
759
+ #define SQL_PROCEDURE_TERM 40
760
+ #define SQL_QUALIFIER_NAME_SEPARATOR 41
761
+ #define SQL_QUALIFIER_TERM 42
762
+ #define SQL_SCROLL_OPTIONS 44
763
+ #define SQL_TABLE_TERM 45
764
+ #define SQL_CONVERT_FUNCTIONS 48
765
+ #define SQL_NUMERIC_FUNCTIONS 49
766
+ #define SQL_STRING_FUNCTIONS 50
767
+ #define SQL_SYSTEM_FUNCTIONS 51
768
+ #define SQL_TIMEDATE_FUNCTIONS 52
769
+ #define SQL_CONVERT_BIGINT 53
770
+ #define SQL_CONVERT_BINARY 54
771
+ #define SQL_CONVERT_BIT 55
772
+ #define SQL_CONVERT_CHAR 56
773
+ #define SQL_CONVERT_DATE 57
774
+ #define SQL_CONVERT_DECIMAL 58
775
+ #define SQL_CONVERT_DOUBLE 59
776
+ #define SQL_CONVERT_FLOAT 60
777
+ #define SQL_CONVERT_INTEGER 61
778
+ #define SQL_CONVERT_LONGVARCHAR 62
779
+ #define SQL_CONVERT_NUMERIC 63
780
+ #define SQL_CONVERT_REAL 64
781
+ #define SQL_CONVERT_SMALLINT 65
782
+ #define SQL_CONVERT_TIME 66
783
+ #define SQL_CONVERT_TIMESTAMP 67
784
+ #define SQL_CONVERT_TINYINT 68
785
+ #define SQL_CONVERT_VARBINARY 69
786
+ #define SQL_CONVERT_VARCHAR 70
787
+ #define SQL_CONVERT_LONGVARBINARY 71
788
+ #define SQL_ODBC_SQL_OPT_IEF 73 /* SQL_INTEGRITY */
789
+ #define SQL_CORRELATION_NAME 74
790
+ #define SQL_NON_NULLABLE_COLUMNS 75
791
+ #define SQL_DRIVER_HLIB 76
792
+ #define SQL_DRIVER_ODBC_VER 77
793
+ #define SQL_LOCK_TYPES 78
794
+ #define SQL_POS_OPERATIONS 79
795
+ #define SQL_POSITIONED_STATEMENTS 80
796
+ #define SQL_BOOKMARK_PERSISTENCE 82
797
+ #define SQL_STATIC_SENSITIVITY 83
798
+ #define SQL_FILE_USAGE 84
799
+ #define SQL_COLUMN_ALIAS 87
800
+ #define SQL_GROUP_BY 88
801
+ #define SQL_KEYWORDS 89
802
+ #define SQL_OWNER_USAGE 91
803
+ #define SQL_QUALIFIER_USAGE 92
804
+ #define SQL_QUOTED_IDENTIFIER_CASE 93
805
+ #define SQL_SUBQUERIES 95
806
+ #define SQL_UNION 96
807
+ #define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103
808
+ #define SQL_MAX_CHAR_LITERAL_LEN 108
809
+ #define SQL_TIMEDATE_ADD_INTERVALS 109
810
+ #define SQL_TIMEDATE_DIFF_INTERVALS 110
811
+ #define SQL_NEED_LONG_DATA_LEN 111
812
+ #define SQL_MAX_BINARY_LITERAL_LEN 112
813
+ #define SQL_LIKE_ESCAPE_CLAUSE 113
814
+ #define SQL_QUALIFIER_LOCATION 114
815
+
816
+ #if (ODBCVER >= 0x0201 && ODBCVER < 0x0300)
817
+ #define SQL_OJ_CAPABILITIES 65003 /* Temp value until ODBC 3.0 */
818
+ #endif /* ODBCVER >= 0x0201 && ODBCVER < 0x0300 */
819
+
820
+ /*----------------------------------------------*/
821
+ /* SQL_INFO_LAST and SQL_INFO_DRIVER_START are */
822
+ /* not useful anymore, because X/Open has */
823
+ /* values in the 10000 range. You */
824
+ /* must contact X/Open directly to get a range */
825
+ /* of numbers for driver-specific values. */
826
+ /*----------------------------------------------*/
827
+
828
+ #if (ODBCVER < 0x0300)
829
+ #define SQL_INFO_LAST SQL_QUALIFIER_LOCATION
830
+ #define SQL_INFO_DRIVER_START 1000
831
+ #endif /* ODBCVER < 0x0300 */
832
+
833
+ /*-----------------------------------------------*/
834
+ /* ODBC 3.0 SQLGetInfo values that are not part */
835
+ /* of the X/Open standard at this time. X/Open */
836
+ /* standard values are in sql.h. */
837
+ /*-----------------------------------------------*/
838
+
839
+ #if (ODBCVER >= 0x0300)
840
+ #define SQL_ACTIVE_ENVIRONMENTS 116
841
+ #define SQL_ALTER_DOMAIN 117
842
+
843
+ #define SQL_SQL_CONFORMANCE 118
844
+ #define SQL_DATETIME_LITERALS 119
845
+
846
+ #define SQL_ASYNC_MODE 10021 /* new X/Open spec */
847
+ #define SQL_BATCH_ROW_COUNT 120
848
+ #define SQL_BATCH_SUPPORT 121
849
+ #define SQL_CATALOG_LOCATION SQL_QUALIFIER_LOCATION
850
+ #define SQL_CATALOG_NAME_SEPARATOR SQL_QUALIFIER_NAME_SEPARATOR
851
+ #define SQL_CATALOG_TERM SQL_QUALIFIER_TERM
852
+ #define SQL_CATALOG_USAGE SQL_QUALIFIER_USAGE
853
+ #define SQL_CONVERT_WCHAR 122
854
+ #define SQL_CONVERT_INTERVAL_DAY_TIME 123
855
+ #define SQL_CONVERT_INTERVAL_YEAR_MONTH 124
856
+ #define SQL_CONVERT_WLONGVARCHAR 125
857
+ #define SQL_CONVERT_WVARCHAR 126
858
+ #define SQL_CREATE_ASSERTION 127
859
+ #define SQL_CREATE_CHARACTER_SET 128
860
+ #define SQL_CREATE_COLLATION 129
861
+ #define SQL_CREATE_DOMAIN 130
862
+ #define SQL_CREATE_SCHEMA 131
863
+ #define SQL_CREATE_TABLE 132
864
+ #define SQL_CREATE_TRANSLATION 133
865
+ #define SQL_CREATE_VIEW 134
866
+ #define SQL_DRIVER_HDESC 135
867
+ #define SQL_DROP_ASSERTION 136
868
+ #define SQL_DROP_CHARACTER_SET 137
869
+ #define SQL_DROP_COLLATION 138
870
+ #define SQL_DROP_DOMAIN 139
871
+ #define SQL_DROP_SCHEMA 140
872
+ #define SQL_DROP_TABLE 141
873
+ #define SQL_DROP_TRANSLATION 142
874
+ #define SQL_DROP_VIEW 143
875
+ #define SQL_DYNAMIC_CURSOR_ATTRIBUTES1 144
876
+ #define SQL_DYNAMIC_CURSOR_ATTRIBUTES2 145
877
+ #define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 146
878
+ #define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 147
879
+ #define SQL_INDEX_KEYWORDS 148
880
+ #define SQL_INFO_SCHEMA_VIEWS 149
881
+ #define SQL_KEYSET_CURSOR_ATTRIBUTES1 150
882
+ #define SQL_KEYSET_CURSOR_ATTRIBUTES2 151
883
+ #define SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 10022 /* new X/Open spec */
884
+ #define SQL_ODBC_INTERFACE_CONFORMANCE 152
885
+ #define SQL_PARAM_ARRAY_ROW_COUNTS 153
886
+ #define SQL_PARAM_ARRAY_SELECTS 154
887
+ #define SQL_SCHEMA_TERM SQL_OWNER_TERM
888
+ #define SQL_SCHEMA_USAGE SQL_OWNER_USAGE
889
+ #define SQL_SQL92_DATETIME_FUNCTIONS 155
890
+ #define SQL_SQL92_FOREIGN_KEY_DELETE_RULE 156
891
+ #define SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 157
892
+ #define SQL_SQL92_GRANT 158
893
+ #define SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 159
894
+ #define SQL_SQL92_PREDICATES 160
895
+ #define SQL_SQL92_RELATIONAL_JOIN_OPERATORS 161
896
+ #define SQL_SQL92_REVOKE 162
897
+ #define SQL_SQL92_ROW_VALUE_CONSTRUCTOR 163
898
+ #define SQL_SQL92_STRING_FUNCTIONS 164
899
+ #define SQL_SQL92_VALUE_EXPRESSIONS 165
900
+ #define SQL_STANDARD_CLI_CONFORMANCE 166
901
+ #define SQL_STATIC_CURSOR_ATTRIBUTES1 167
902
+ #define SQL_STATIC_CURSOR_ATTRIBUTES2 168
903
+
904
+ #define SQL_AGGREGATE_FUNCTIONS 169
905
+ #define SQL_DDL_INDEX 170
906
+ #define SQL_DM_VER 171
907
+ #define SQL_INSERT_STATEMENT 172
908
+ #define SQL_CONVERT_GUID 173
909
+ #define SQL_UNION_STATEMENT SQL_UNION
910
+
911
+ #if (ODBCVER >= 0x0380)
912
+ /* Info Types */
913
+ #define SQL_ASYNC_DBC_FUNCTIONS 10023
914
+ #endif /* ODBCVER >= 0x0380 */
915
+
916
+ #endif /* ODBCVER >= 0x0300 */
917
+
918
+ #define SQL_DTC_TRANSITION_COST 1750
919
+
920
+ /* SQL_ALTER_TABLE bitmasks */
921
+ #if (ODBCVER >= 0x0300)
922
+ /* the following 5 bitmasks are defined in sql.h
923
+ *#define SQL_AT_ADD_COLUMN 0x00000001L
924
+ *#define SQL_AT_DROP_COLUMN 0x00000002L
925
+ *#define SQL_AT_ADD_CONSTRAINT 0x00000008L
926
+ */
927
+ #define SQL_AT_ADD_COLUMN_SINGLE 0x00000020L
928
+ #define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L
929
+ #define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L
930
+ #define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L
931
+ #define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L
932
+ #define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L
933
+ #define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L
934
+ #define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L
935
+ #define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L
936
+ #define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L
937
+ #define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L
938
+ #define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L
939
+ #define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L
940
+ #define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L
941
+ #define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L
942
+ #endif /* ODBCVER >= 0x0300 */
943
+
944
+ /* SQL_CONVERT_* return value bitmasks */
945
+
946
+ #define SQL_CVT_CHAR 0x00000001L
947
+ #define SQL_CVT_NUMERIC 0x00000002L
948
+ #define SQL_CVT_DECIMAL 0x00000004L
949
+ #define SQL_CVT_INTEGER 0x00000008L
950
+ #define SQL_CVT_SMALLINT 0x00000010L
951
+ #define SQL_CVT_FLOAT 0x00000020L
952
+ #define SQL_CVT_REAL 0x00000040L
953
+ #define SQL_CVT_DOUBLE 0x00000080L
954
+ #define SQL_CVT_VARCHAR 0x00000100L
955
+ #define SQL_CVT_LONGVARCHAR 0x00000200L
956
+ #define SQL_CVT_BINARY 0x00000400L
957
+ #define SQL_CVT_VARBINARY 0x00000800L
958
+ #define SQL_CVT_BIT 0x00001000L
959
+ #define SQL_CVT_TINYINT 0x00002000L
960
+ #define SQL_CVT_BIGINT 0x00004000L
961
+ #define SQL_CVT_DATE 0x00008000L
962
+ #define SQL_CVT_TIME 0x00010000L
963
+ #define SQL_CVT_TIMESTAMP 0x00020000L
964
+ #define SQL_CVT_LONGVARBINARY 0x00040000L
965
+ #if (ODBCVER >= 0x0300)
966
+ #define SQL_CVT_INTERVAL_YEAR_MONTH 0x00080000L
967
+ #define SQL_CVT_INTERVAL_DAY_TIME 0x00100000L
968
+ #define SQL_CVT_WCHAR 0x00200000L
969
+ #define SQL_CVT_WLONGVARCHAR 0x00400000L
970
+ #define SQL_CVT_WVARCHAR 0x00800000L
971
+ #define SQL_CVT_GUID 0x01000000L
972
+
973
+ #endif /* ODBCVER >= 0x0300 */
974
+
975
+
976
+ /* SQL_CONVERT_FUNCTIONS functions */
977
+ #define SQL_FN_CVT_CONVERT 0x00000001L
978
+ #if (ODBCVER >= 0x0300)
979
+ #define SQL_FN_CVT_CAST 0x00000002L
980
+ #endif /* ODBCVER >= 0x0300 */
981
+
982
+
983
+ /* SQL_STRING_FUNCTIONS functions */
984
+
985
+ #define SQL_FN_STR_CONCAT 0x00000001L
986
+ #define SQL_FN_STR_INSERT 0x00000002L
987
+ #define SQL_FN_STR_LEFT 0x00000004L
988
+ #define SQL_FN_STR_LTRIM 0x00000008L
989
+ #define SQL_FN_STR_LENGTH 0x00000010L
990
+ #define SQL_FN_STR_LOCATE 0x00000020L
991
+ #define SQL_FN_STR_LCASE 0x00000040L
992
+ #define SQL_FN_STR_REPEAT 0x00000080L
993
+ #define SQL_FN_STR_REPLACE 0x00000100L
994
+ #define SQL_FN_STR_RIGHT 0x00000200L
995
+ #define SQL_FN_STR_RTRIM 0x00000400L
996
+ #define SQL_FN_STR_SUBSTRING 0x00000800L
997
+ #define SQL_FN_STR_UCASE 0x00001000L
998
+ #define SQL_FN_STR_ASCII 0x00002000L
999
+ #define SQL_FN_STR_CHAR 0x00004000L
1000
+ #define SQL_FN_STR_DIFFERENCE 0x00008000L
1001
+ #define SQL_FN_STR_LOCATE_2 0x00010000L
1002
+ #define SQL_FN_STR_SOUNDEX 0x00020000L
1003
+ #define SQL_FN_STR_SPACE 0x00040000L
1004
+ #if (ODBCVER >= 0x0300)
1005
+ #define SQL_FN_STR_BIT_LENGTH 0x00080000L
1006
+ #define SQL_FN_STR_CHAR_LENGTH 0x00100000L
1007
+ #define SQL_FN_STR_CHARACTER_LENGTH 0x00200000L
1008
+ #define SQL_FN_STR_OCTET_LENGTH 0x00400000L
1009
+ #define SQL_FN_STR_POSITION 0x00800000L
1010
+ #endif /* ODBCVER >= 0x0300 */
1011
+
1012
+ /* SQL_SQL92_STRING_FUNCTIONS */
1013
+ #if (ODBCVER >= 0x0300)
1014
+ #define SQL_SSF_CONVERT 0x00000001L
1015
+ #define SQL_SSF_LOWER 0x00000002L
1016
+ #define SQL_SSF_UPPER 0x00000004L
1017
+ #define SQL_SSF_SUBSTRING 0x00000008L
1018
+ #define SQL_SSF_TRANSLATE 0x00000010L
1019
+ #define SQL_SSF_TRIM_BOTH 0x00000020L
1020
+ #define SQL_SSF_TRIM_LEADING 0x00000040L
1021
+ #define SQL_SSF_TRIM_TRAILING 0x00000080L
1022
+ #endif /* ODBCVER >= 0x0300 */
1023
+
1024
+ /* SQL_NUMERIC_FUNCTIONS functions */
1025
+
1026
+ #define SQL_FN_NUM_ABS 0x00000001L
1027
+ #define SQL_FN_NUM_ACOS 0x00000002L
1028
+ #define SQL_FN_NUM_ASIN 0x00000004L
1029
+ #define SQL_FN_NUM_ATAN 0x00000008L
1030
+ #define SQL_FN_NUM_ATAN2 0x00000010L
1031
+ #define SQL_FN_NUM_CEILING 0x00000020L
1032
+ #define SQL_FN_NUM_COS 0x00000040L
1033
+ #define SQL_FN_NUM_COT 0x00000080L
1034
+ #define SQL_FN_NUM_EXP 0x00000100L
1035
+ #define SQL_FN_NUM_FLOOR 0x00000200L
1036
+ #define SQL_FN_NUM_LOG 0x00000400L
1037
+ #define SQL_FN_NUM_MOD 0x00000800L
1038
+ #define SQL_FN_NUM_SIGN 0x00001000L
1039
+ #define SQL_FN_NUM_SIN 0x00002000L
1040
+ #define SQL_FN_NUM_SQRT 0x00004000L
1041
+ #define SQL_FN_NUM_TAN 0x00008000L
1042
+ #define SQL_FN_NUM_PI 0x00010000L
1043
+ #define SQL_FN_NUM_RAND 0x00020000L
1044
+ #define SQL_FN_NUM_DEGREES 0x00040000L
1045
+ #define SQL_FN_NUM_LOG10 0x00080000L
1046
+ #define SQL_FN_NUM_POWER 0x00100000L
1047
+ #define SQL_FN_NUM_RADIANS 0x00200000L
1048
+ #define SQL_FN_NUM_ROUND 0x00400000L
1049
+ #define SQL_FN_NUM_TRUNCATE 0x00800000L
1050
+
1051
+ /* SQL_SQL92_NUMERIC_VALUE_FUNCTIONS */
1052
+ #if (ODBCVER >= 0x0300)
1053
+ #define SQL_SNVF_BIT_LENGTH 0x00000001L
1054
+ #define SQL_SNVF_CHAR_LENGTH 0x00000002L
1055
+ #define SQL_SNVF_CHARACTER_LENGTH 0x00000004L
1056
+ #define SQL_SNVF_EXTRACT 0x00000008L
1057
+ #define SQL_SNVF_OCTET_LENGTH 0x00000010L
1058
+ #define SQL_SNVF_POSITION 0x00000020L
1059
+ #endif /* ODBCVER >= 0x0300 */
1060
+
1061
+ /* SQL_TIMEDATE_FUNCTIONS functions */
1062
+
1063
+ #define SQL_FN_TD_NOW 0x00000001L
1064
+ #define SQL_FN_TD_CURDATE 0x00000002L
1065
+ #define SQL_FN_TD_DAYOFMONTH 0x00000004L
1066
+ #define SQL_FN_TD_DAYOFWEEK 0x00000008L
1067
+ #define SQL_FN_TD_DAYOFYEAR 0x00000010L
1068
+ #define SQL_FN_TD_MONTH 0x00000020L
1069
+ #define SQL_FN_TD_QUARTER 0x00000040L
1070
+ #define SQL_FN_TD_WEEK 0x00000080L
1071
+ #define SQL_FN_TD_YEAR 0x00000100L
1072
+ #define SQL_FN_TD_CURTIME 0x00000200L
1073
+ #define SQL_FN_TD_HOUR 0x00000400L
1074
+ #define SQL_FN_TD_MINUTE 0x00000800L
1075
+ #define SQL_FN_TD_SECOND 0x00001000L
1076
+ #define SQL_FN_TD_TIMESTAMPADD 0x00002000L
1077
+ #define SQL_FN_TD_TIMESTAMPDIFF 0x00004000L
1078
+ #define SQL_FN_TD_DAYNAME 0x00008000L
1079
+ #define SQL_FN_TD_MONTHNAME 0x00010000L
1080
+ #if (ODBCVER >= 0x0300)
1081
+ #define SQL_FN_TD_CURRENT_DATE 0x00020000L
1082
+ #define SQL_FN_TD_CURRENT_TIME 0x00040000L
1083
+ #define SQL_FN_TD_CURRENT_TIMESTAMP 0x00080000L
1084
+ #define SQL_FN_TD_EXTRACT 0x00100000L
1085
+ #endif /* ODBCVER >= 0x0300 */
1086
+
1087
+ /* SQL_SQL92_DATETIME_FUNCTIONS */
1088
+ #if (ODBCVER >= 0x0300)
1089
+ #define SQL_SDF_CURRENT_DATE 0x00000001L
1090
+ #define SQL_SDF_CURRENT_TIME 0x00000002L
1091
+ #define SQL_SDF_CURRENT_TIMESTAMP 0x00000004L
1092
+ #endif /* ODBCVER >= 0x0300 */
1093
+
1094
+ /* SQL_SYSTEM_FUNCTIONS functions */
1095
+
1096
+ #define SQL_FN_SYS_USERNAME 0x00000001L
1097
+ #define SQL_FN_SYS_DBNAME 0x00000002L
1098
+ #define SQL_FN_SYS_IFNULL 0x00000004L
1099
+
1100
+ /* SQL_TIMEDATE_ADD_INTERVALS and SQL_TIMEDATE_DIFF_INTERVALS functions */
1101
+
1102
+ #define SQL_FN_TSI_FRAC_SECOND 0x00000001L
1103
+ #define SQL_FN_TSI_SECOND 0x00000002L
1104
+ #define SQL_FN_TSI_MINUTE 0x00000004L
1105
+ #define SQL_FN_TSI_HOUR 0x00000008L
1106
+ #define SQL_FN_TSI_DAY 0x00000010L
1107
+ #define SQL_FN_TSI_WEEK 0x00000020L
1108
+ #define SQL_FN_TSI_MONTH 0x00000040L
1109
+ #define SQL_FN_TSI_QUARTER 0x00000080L
1110
+ #define SQL_FN_TSI_YEAR 0x00000100L
1111
+
1112
+ /* bitmasks for SQL_DYNAMIC_CURSOR_ATTRIBUTES1,
1113
+ * SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1,
1114
+ * SQL_KEYSET_CURSOR_ATTRIBUTES1, and SQL_STATIC_CURSOR_ATTRIBUTES1
1115
+ */
1116
+ #if (ODBCVER >= 0x0300)
1117
+ /* supported SQLFetchScroll FetchOrientation's */
1118
+ #define SQL_CA1_NEXT 0x00000001L
1119
+ #define SQL_CA1_ABSOLUTE 0x00000002L
1120
+ #define SQL_CA1_RELATIVE 0x00000004L
1121
+ #define SQL_CA1_BOOKMARK 0x00000008L
1122
+
1123
+ /* supported SQLSetPos LockType's */
1124
+ #define SQL_CA1_LOCK_NO_CHANGE 0x00000040L
1125
+ #define SQL_CA1_LOCK_EXCLUSIVE 0x00000080L
1126
+ #define SQL_CA1_LOCK_UNLOCK 0x00000100L
1127
+
1128
+ /* supported SQLSetPos Operations */
1129
+ #define SQL_CA1_POS_POSITION 0x00000200L
1130
+ #define SQL_CA1_POS_UPDATE 0x00000400L
1131
+ #define SQL_CA1_POS_DELETE 0x00000800L
1132
+ #define SQL_CA1_POS_REFRESH 0x00001000L
1133
+
1134
+ /* positioned updates and deletes */
1135
+ #define SQL_CA1_POSITIONED_UPDATE 0x00002000L
1136
+ #define SQL_CA1_POSITIONED_DELETE 0x00004000L
1137
+ #define SQL_CA1_SELECT_FOR_UPDATE 0x00008000L
1138
+
1139
+ /* supported SQLBulkOperations operations */
1140
+ #define SQL_CA1_BULK_ADD 0x00010000L
1141
+ #define SQL_CA1_BULK_UPDATE_BY_BOOKMARK 0x00020000L
1142
+ #define SQL_CA1_BULK_DELETE_BY_BOOKMARK 0x00040000L
1143
+ #define SQL_CA1_BULK_FETCH_BY_BOOKMARK 0x00080000L
1144
+ #endif /* ODBCVER >= 0x0300 */
1145
+
1146
+ /* bitmasks for SQL_DYNAMIC_CURSOR_ATTRIBUTES2,
1147
+ * SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2,
1148
+ * SQL_KEYSET_CURSOR_ATTRIBUTES2, and SQL_STATIC_CURSOR_ATTRIBUTES2
1149
+ */
1150
+ #if (ODBCVER >= 0x0300)
1151
+ /* supported values for SQL_ATTR_SCROLL_CONCURRENCY */
1152
+ #define SQL_CA2_READ_ONLY_CONCURRENCY 0x00000001L
1153
+ #define SQL_CA2_LOCK_CONCURRENCY 0x00000002L
1154
+ #define SQL_CA2_OPT_ROWVER_CONCURRENCY 0x00000004L
1155
+ #define SQL_CA2_OPT_VALUES_CONCURRENCY 0x00000008L
1156
+
1157
+ /* sensitivity of the cursor to its own inserts, deletes, and updates */
1158
+ #define SQL_CA2_SENSITIVITY_ADDITIONS 0x00000010L
1159
+ #define SQL_CA2_SENSITIVITY_DELETIONS 0x00000020L
1160
+ #define SQL_CA2_SENSITIVITY_UPDATES 0x00000040L
1161
+
1162
+ /* semantics of SQL_ATTR_MAX_ROWS */
1163
+ #define SQL_CA2_MAX_ROWS_SELECT 0x00000080L
1164
+ #define SQL_CA2_MAX_ROWS_INSERT 0x00000100L
1165
+ #define SQL_CA2_MAX_ROWS_DELETE 0x00000200L
1166
+ #define SQL_CA2_MAX_ROWS_UPDATE 0x00000400L
1167
+ #define SQL_CA2_MAX_ROWS_CATALOG 0x00000800L
1168
+ #define SQL_CA2_MAX_ROWS_AFFECTS_ALL (SQL_CA2_MAX_ROWS_SELECT | \
1169
+ SQL_CA2_MAX_ROWS_INSERT | SQL_CA2_MAX_ROWS_DELETE | \
1170
+ SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG)
1171
+
1172
+ /* semantics of SQL_DIAG_CURSOR_ROW_COUNT */
1173
+ #define SQL_CA2_CRC_EXACT 0x00001000L
1174
+ #define SQL_CA2_CRC_APPROXIMATE 0x00002000L
1175
+
1176
+ /* the kinds of positioned statements that can be simulated */
1177
+ #define SQL_CA2_SIMULATE_NON_UNIQUE 0x00004000L
1178
+ #define SQL_CA2_SIMULATE_TRY_UNIQUE 0x00008000L
1179
+ #define SQL_CA2_SIMULATE_UNIQUE 0x00010000L
1180
+ #endif /* ODBCVER >= 0x0300 */
1181
+
1182
+ /* SQL_ODBC_API_CONFORMANCE values */
1183
+
1184
+ #define SQL_OAC_NONE 0x0000
1185
+ #define SQL_OAC_LEVEL1 0x0001
1186
+ #define SQL_OAC_LEVEL2 0x0002
1187
+
1188
+ /* SQL_ODBC_SAG_CLI_CONFORMANCE values */
1189
+
1190
+ #define SQL_OSCC_NOT_COMPLIANT 0x0000
1191
+ #define SQL_OSCC_COMPLIANT 0x0001
1192
+
1193
+ /* SQL_ODBC_SQL_CONFORMANCE values */
1194
+
1195
+ #define SQL_OSC_MINIMUM 0x0000
1196
+ #define SQL_OSC_CORE 0x0001
1197
+ #define SQL_OSC_EXTENDED 0x0002
1198
+
1199
+
1200
+ /* SQL_CONCAT_NULL_BEHAVIOR values */
1201
+
1202
+ #define SQL_CB_NULL 0x0000
1203
+ #define SQL_CB_NON_NULL 0x0001
1204
+
1205
+ /* SQL_SCROLL_OPTIONS masks */
1206
+
1207
+ #define SQL_SO_FORWARD_ONLY 0x00000001L
1208
+ #define SQL_SO_KEYSET_DRIVEN 0x00000002L
1209
+ #define SQL_SO_DYNAMIC 0x00000004L
1210
+ #define SQL_SO_MIXED 0x00000008L
1211
+ #define SQL_SO_STATIC 0x00000010L
1212
+
1213
+ /* SQL_FETCH_DIRECTION masks */
1214
+
1215
+ /* SQL_FETCH_RESUME is no longer supported
1216
+ #define SQL_FD_FETCH_RESUME 0x00000040L
1217
+ */
1218
+ #define SQL_FD_FETCH_BOOKMARK 0x00000080L
1219
+
1220
+ /* SQL_TXN_ISOLATION_OPTION masks */
1221
+ /* SQL_TXN_VERSIONING is no longer supported
1222
+ #define SQL_TXN_VERSIONING 0x00000010L
1223
+ */
1224
+
1225
+ /* SQL_CORRELATION_NAME values */
1226
+
1227
+ #define SQL_CN_NONE 0x0000
1228
+ #define SQL_CN_DIFFERENT 0x0001
1229
+ #define SQL_CN_ANY 0x0002
1230
+
1231
+ /* SQL_NON_NULLABLE_COLUMNS values */
1232
+
1233
+ #define SQL_NNC_NULL 0x0000
1234
+ #define SQL_NNC_NON_NULL 0x0001
1235
+
1236
+ /* SQL_NULL_COLLATION values */
1237
+
1238
+ #define SQL_NC_START 0x0002
1239
+ #define SQL_NC_END 0x0004
1240
+
1241
+ /* SQL_FILE_USAGE values */
1242
+
1243
+ #define SQL_FILE_NOT_SUPPORTED 0x0000
1244
+ #define SQL_FILE_TABLE 0x0001
1245
+ #define SQL_FILE_QUALIFIER 0x0002
1246
+ #define SQL_FILE_CATALOG SQL_FILE_QUALIFIER /* ODBC 3.0 */
1247
+
1248
+
1249
+ /* SQL_GETDATA_EXTENSIONS values */
1250
+
1251
+ #define SQL_GD_BLOCK 0x00000004L
1252
+ #define SQL_GD_BOUND 0x00000008L
1253
+ #if (ODBCVER >= 0x0380)
1254
+ #define SQL_GD_OUTPUT_PARAMS 0x00000010L
1255
+ #endif
1256
+
1257
+ /* SQL_POSITIONED_STATEMENTS masks */
1258
+
1259
+ #define SQL_PS_POSITIONED_DELETE 0x00000001L
1260
+ #define SQL_PS_POSITIONED_UPDATE 0x00000002L
1261
+ #define SQL_PS_SELECT_FOR_UPDATE 0x00000004L
1262
+
1263
+ /* SQL_GROUP_BY values */
1264
+
1265
+ #define SQL_GB_NOT_SUPPORTED 0x0000
1266
+ #define SQL_GB_GROUP_BY_EQUALS_SELECT 0x0001
1267
+ #define SQL_GB_GROUP_BY_CONTAINS_SELECT 0x0002
1268
+ #define SQL_GB_NO_RELATION 0x0003
1269
+ #if (ODBCVER >= 0x0300)
1270
+ #define SQL_GB_COLLATE 0x0004
1271
+
1272
+ #endif /* ODBCVER >= 0x0300 */
1273
+
1274
+ /* SQL_OWNER_USAGE masks */
1275
+
1276
+ #define SQL_OU_DML_STATEMENTS 0x00000001L
1277
+ #define SQL_OU_PROCEDURE_INVOCATION 0x00000002L
1278
+ #define SQL_OU_TABLE_DEFINITION 0x00000004L
1279
+ #define SQL_OU_INDEX_DEFINITION 0x00000008L
1280
+ #define SQL_OU_PRIVILEGE_DEFINITION 0x00000010L
1281
+
1282
+ /* SQL_SCHEMA_USAGE masks */
1283
+ #if (ODBCVER >= 0x0300)
1284
+ #define SQL_SU_DML_STATEMENTS SQL_OU_DML_STATEMENTS
1285
+ #define SQL_SU_PROCEDURE_INVOCATION SQL_OU_PROCEDURE_INVOCATION
1286
+ #define SQL_SU_TABLE_DEFINITION SQL_OU_TABLE_DEFINITION
1287
+ #define SQL_SU_INDEX_DEFINITION SQL_OU_INDEX_DEFINITION
1288
+ #define SQL_SU_PRIVILEGE_DEFINITION SQL_OU_PRIVILEGE_DEFINITION
1289
+ #endif /* ODBCVER >= 0x0300 */
1290
+
1291
+ /* SQL_QUALIFIER_USAGE masks */
1292
+
1293
+ #define SQL_QU_DML_STATEMENTS 0x00000001L
1294
+ #define SQL_QU_PROCEDURE_INVOCATION 0x00000002L
1295
+ #define SQL_QU_TABLE_DEFINITION 0x00000004L
1296
+ #define SQL_QU_INDEX_DEFINITION 0x00000008L
1297
+ #define SQL_QU_PRIVILEGE_DEFINITION 0x00000010L
1298
+
1299
+ #if (ODBCVER >= 0x0300)
1300
+ /* SQL_CATALOG_USAGE masks */
1301
+ #define SQL_CU_DML_STATEMENTS SQL_QU_DML_STATEMENTS
1302
+ #define SQL_CU_PROCEDURE_INVOCATION SQL_QU_PROCEDURE_INVOCATION
1303
+ #define SQL_CU_TABLE_DEFINITION SQL_QU_TABLE_DEFINITION
1304
+ #define SQL_CU_INDEX_DEFINITION SQL_QU_INDEX_DEFINITION
1305
+ #define SQL_CU_PRIVILEGE_DEFINITION SQL_QU_PRIVILEGE_DEFINITION
1306
+ #endif /* ODBCVER >= 0x0300 */
1307
+
1308
+ /* SQL_SUBQUERIES masks */
1309
+
1310
+ #define SQL_SQ_COMPARISON 0x00000001L
1311
+ #define SQL_SQ_EXISTS 0x00000002L
1312
+ #define SQL_SQ_IN 0x00000004L
1313
+ #define SQL_SQ_QUANTIFIED 0x00000008L
1314
+ #define SQL_SQ_CORRELATED_SUBQUERIES 0x00000010L
1315
+
1316
+ /* SQL_UNION masks */
1317
+
1318
+ #define SQL_U_UNION 0x00000001L
1319
+ #define SQL_U_UNION_ALL 0x00000002L
1320
+
1321
+ /* SQL_BOOKMARK_PERSISTENCE values */
1322
+
1323
+ #define SQL_BP_CLOSE 0x00000001L
1324
+ #define SQL_BP_DELETE 0x00000002L
1325
+ #define SQL_BP_DROP 0x00000004L
1326
+ #define SQL_BP_TRANSACTION 0x00000008L
1327
+ #define SQL_BP_UPDATE 0x00000010L
1328
+ #define SQL_BP_OTHER_HSTMT 0x00000020L
1329
+ #define SQL_BP_SCROLL 0x00000040L
1330
+
1331
+ /* SQL_STATIC_SENSITIVITY values */
1332
+
1333
+ #define SQL_SS_ADDITIONS 0x00000001L
1334
+ #define SQL_SS_DELETIONS 0x00000002L
1335
+ #define SQL_SS_UPDATES 0x00000004L
1336
+
1337
+ /* SQL_VIEW values */
1338
+ #define SQL_CV_CREATE_VIEW 0x00000001L
1339
+ #define SQL_CV_CHECK_OPTION 0x00000002L
1340
+ #define SQL_CV_CASCADED 0x00000004L
1341
+ #define SQL_CV_LOCAL 0x00000008L
1342
+
1343
+ /* SQL_LOCK_TYPES masks */
1344
+
1345
+ #define SQL_LCK_NO_CHANGE 0x00000001L
1346
+ #define SQL_LCK_EXCLUSIVE 0x00000002L
1347
+ #define SQL_LCK_UNLOCK 0x00000004L
1348
+
1349
+ /* SQL_POS_OPERATIONS masks */
1350
+
1351
+ #define SQL_POS_POSITION 0x00000001L
1352
+ #define SQL_POS_REFRESH 0x00000002L
1353
+ #define SQL_POS_UPDATE 0x00000004L
1354
+ #define SQL_POS_DELETE 0x00000008L
1355
+ #define SQL_POS_ADD 0x00000010L
1356
+
1357
+ /* SQL_QUALIFIER_LOCATION values */
1358
+
1359
+ #define SQL_QL_START 0x0001
1360
+ #define SQL_QL_END 0x0002
1361
+
1362
+ /* Here start return values for ODBC 3.0 SQLGetInfo */
1363
+
1364
+ #if (ODBCVER >= 0x0300)
1365
+ /* SQL_AGGREGATE_FUNCTIONS bitmasks */
1366
+ #define SQL_AF_AVG 0x00000001L
1367
+ #define SQL_AF_COUNT 0x00000002L
1368
+ #define SQL_AF_MAX 0x00000004L
1369
+ #define SQL_AF_MIN 0x00000008L
1370
+ #define SQL_AF_SUM 0x00000010L
1371
+ #define SQL_AF_DISTINCT 0x00000020L
1372
+ #define SQL_AF_ALL 0x00000040L
1373
+
1374
+ /* SQL_SQL_CONFORMANCE bit masks */
1375
+ #define SQL_SC_SQL92_ENTRY 0x00000001L
1376
+ #define SQL_SC_FIPS127_2_TRANSITIONAL 0x00000002L
1377
+ #define SQL_SC_SQL92_INTERMEDIATE 0x00000004L
1378
+ #define SQL_SC_SQL92_FULL 0x00000008L
1379
+
1380
+ /* SQL_DATETIME_LITERALS masks */
1381
+ #define SQL_DL_SQL92_DATE 0x00000001L
1382
+ #define SQL_DL_SQL92_TIME 0x00000002L
1383
+ #define SQL_DL_SQL92_TIMESTAMP 0x00000004L
1384
+ #define SQL_DL_SQL92_INTERVAL_YEAR 0x00000008L
1385
+ #define SQL_DL_SQL92_INTERVAL_MONTH 0x00000010L
1386
+ #define SQL_DL_SQL92_INTERVAL_DAY 0x00000020L
1387
+ #define SQL_DL_SQL92_INTERVAL_HOUR 0x00000040L
1388
+ #define SQL_DL_SQL92_INTERVAL_MINUTE 0x00000080L
1389
+ #define SQL_DL_SQL92_INTERVAL_SECOND 0x00000100L
1390
+ #define SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH 0x00000200L
1391
+ #define SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR 0x00000400L
1392
+ #define SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE 0x00000800L
1393
+ #define SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND 0x00001000L
1394
+ #define SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE 0x00002000L
1395
+ #define SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND 0x00004000L
1396
+ #define SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND 0x00008000L
1397
+
1398
+ /* SQL_CATALOG_LOCATION values */
1399
+ #define SQL_CL_START SQL_QL_START
1400
+ #define SQL_CL_END SQL_QL_END
1401
+
1402
+ /* values for SQL_BATCH_ROW_COUNT */
1403
+ #define SQL_BRC_PROCEDURES 0x0000001
1404
+ #define SQL_BRC_EXPLICIT 0x0000002
1405
+ #define SQL_BRC_ROLLED_UP 0x0000004
1406
+
1407
+ /* bitmasks for SQL_BATCH_SUPPORT */
1408
+ #define SQL_BS_SELECT_EXPLICIT 0x00000001L
1409
+ #define SQL_BS_ROW_COUNT_EXPLICIT 0x00000002L
1410
+ #define SQL_BS_SELECT_PROC 0x00000004L
1411
+ #define SQL_BS_ROW_COUNT_PROC 0x00000008L
1412
+
1413
+ /* Values for SQL_PARAM_ARRAY_ROW_COUNTS getinfo */
1414
+ #define SQL_PARC_BATCH 1
1415
+ #define SQL_PARC_NO_BATCH 2
1416
+
1417
+ /* values for SQL_PARAM_ARRAY_SELECTS */
1418
+ #define SQL_PAS_BATCH 1
1419
+ #define SQL_PAS_NO_BATCH 2
1420
+ #define SQL_PAS_NO_SELECT 3
1421
+
1422
+ /* Bitmasks for SQL_INDEX_KEYWORDS */
1423
+ #define SQL_IK_NONE 0x00000000L
1424
+ #define SQL_IK_ASC 0x00000001L
1425
+ #define SQL_IK_DESC 0x00000002L
1426
+ #define SQL_IK_ALL (SQL_IK_ASC | SQL_IK_DESC)
1427
+
1428
+ /* Bitmasks for SQL_INFO_SCHEMA_VIEWS */
1429
+
1430
+ #define SQL_ISV_ASSERTIONS 0x00000001L
1431
+ #define SQL_ISV_CHARACTER_SETS 0x00000002L
1432
+ #define SQL_ISV_CHECK_CONSTRAINTS 0x00000004L
1433
+ #define SQL_ISV_COLLATIONS 0x00000008L
1434
+ #define SQL_ISV_COLUMN_DOMAIN_USAGE 0x00000010L
1435
+ #define SQL_ISV_COLUMN_PRIVILEGES 0x00000020L
1436
+ #define SQL_ISV_COLUMNS 0x00000040L
1437
+ #define SQL_ISV_CONSTRAINT_COLUMN_USAGE 0x00000080L
1438
+ #define SQL_ISV_CONSTRAINT_TABLE_USAGE 0x00000100L
1439
+ #define SQL_ISV_DOMAIN_CONSTRAINTS 0x00000200L
1440
+ #define SQL_ISV_DOMAINS 0x00000400L
1441
+ #define SQL_ISV_KEY_COLUMN_USAGE 0x00000800L
1442
+ #define SQL_ISV_REFERENTIAL_CONSTRAINTS 0x00001000L
1443
+ #define SQL_ISV_SCHEMATA 0x00002000L
1444
+ #define SQL_ISV_SQL_LANGUAGES 0x00004000L
1445
+ #define SQL_ISV_TABLE_CONSTRAINTS 0x00008000L
1446
+ #define SQL_ISV_TABLE_PRIVILEGES 0x00010000L
1447
+ #define SQL_ISV_TABLES 0x00020000L
1448
+ #define SQL_ISV_TRANSLATIONS 0x00040000L
1449
+ #define SQL_ISV_USAGE_PRIVILEGES 0x00080000L
1450
+ #define SQL_ISV_VIEW_COLUMN_USAGE 0x00100000L
1451
+ #define SQL_ISV_VIEW_TABLE_USAGE 0x00200000L
1452
+ #define SQL_ISV_VIEWS 0x00400000L
1453
+
1454
+ /* Bitmasks for SQL_ASYNC_MODE */
1455
+
1456
+ #define SQL_AM_NONE 0
1457
+ #define SQL_AM_CONNECTION 1
1458
+ #define SQL_AM_STATEMENT 2
1459
+
1460
+ /* Bitmasks for SQL_ALTER_DOMAIN */
1461
+ #define SQL_AD_CONSTRAINT_NAME_DEFINITION 0x00000001L
1462
+ #define SQL_AD_ADD_DOMAIN_CONSTRAINT 0x00000002L
1463
+ #define SQL_AD_DROP_DOMAIN_CONSTRAINT 0x00000004L
1464
+ #define SQL_AD_ADD_DOMAIN_DEFAULT 0x00000008L
1465
+ #define SQL_AD_DROP_DOMAIN_DEFAULT 0x00000010L
1466
+ #define SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
1467
+ #define SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
1468
+ #define SQL_AD_ADD_CONSTRAINT_DEFERRABLE 0x00000080L
1469
+ #define SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE 0x00000100L
1470
+
1471
+
1472
+ /* SQL_CREATE_SCHEMA bitmasks */
1473
+ #define SQL_CS_CREATE_SCHEMA 0x00000001L
1474
+ #define SQL_CS_AUTHORIZATION 0x00000002L
1475
+ #define SQL_CS_DEFAULT_CHARACTER_SET 0x00000004L
1476
+
1477
+ /* SQL_CREATE_TRANSLATION bitmasks */
1478
+ #define SQL_CTR_CREATE_TRANSLATION 0x00000001L
1479
+
1480
+ /* SQL_CREATE_ASSERTION bitmasks */
1481
+ #define SQL_CA_CREATE_ASSERTION 0x00000001L
1482
+ #define SQL_CA_CONSTRAINT_INITIALLY_DEFERRED 0x00000010L
1483
+ #define SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000020L
1484
+ #define SQL_CA_CONSTRAINT_DEFERRABLE 0x00000040L
1485
+ #define SQL_CA_CONSTRAINT_NON_DEFERRABLE 0x00000080L
1486
+
1487
+ /* SQL_CREATE_CHARACTER_SET bitmasks */
1488
+ #define SQL_CCS_CREATE_CHARACTER_SET 0x00000001L
1489
+ #define SQL_CCS_COLLATE_CLAUSE 0x00000002L
1490
+ #define SQL_CCS_LIMITED_COLLATION 0x00000004L
1491
+
1492
+ /* SQL_CREATE_COLLATION bitmasks */
1493
+ #define SQL_CCOL_CREATE_COLLATION 0x00000001L
1494
+
1495
+ /* SQL_CREATE_DOMAIN bitmasks */
1496
+ #define SQL_CDO_CREATE_DOMAIN 0x00000001L
1497
+ #define SQL_CDO_DEFAULT 0x00000002L
1498
+ #define SQL_CDO_CONSTRAINT 0x00000004L
1499
+ #define SQL_CDO_COLLATION 0x00000008L
1500
+ #define SQL_CDO_CONSTRAINT_NAME_DEFINITION 0x00000010L
1501
+ #define SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
1502
+ #define SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
1503
+ #define SQL_CDO_CONSTRAINT_DEFERRABLE 0x00000080L
1504
+ #define SQL_CDO_CONSTRAINT_NON_DEFERRABLE 0x00000100L
1505
+
1506
+ /* SQL_CREATE_TABLE bitmasks */
1507
+ #define SQL_CT_CREATE_TABLE 0x00000001L
1508
+ #define SQL_CT_COMMIT_PRESERVE 0x00000002L
1509
+ #define SQL_CT_COMMIT_DELETE 0x00000004L
1510
+ #define SQL_CT_GLOBAL_TEMPORARY 0x00000008L
1511
+ #define SQL_CT_LOCAL_TEMPORARY 0x00000010L
1512
+ #define SQL_CT_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
1513
+ #define SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
1514
+ #define SQL_CT_CONSTRAINT_DEFERRABLE 0x00000080L
1515
+ #define SQL_CT_CONSTRAINT_NON_DEFERRABLE 0x00000100L
1516
+ #define SQL_CT_COLUMN_CONSTRAINT 0x00000200L
1517
+ #define SQL_CT_COLUMN_DEFAULT 0x00000400L
1518
+ #define SQL_CT_COLUMN_COLLATION 0x00000800L
1519
+ #define SQL_CT_TABLE_CONSTRAINT 0x00001000L
1520
+ #define SQL_CT_CONSTRAINT_NAME_DEFINITION 0x00002000L
1521
+
1522
+ /* SQL_DDL_INDEX bitmasks */
1523
+ #define SQL_DI_CREATE_INDEX 0x00000001L
1524
+ #define SQL_DI_DROP_INDEX 0x00000002L
1525
+
1526
+ /* SQL_DROP_COLLATION bitmasks */
1527
+ #define SQL_DC_DROP_COLLATION 0x00000001L
1528
+
1529
+ /* SQL_DROP_DOMAIN bitmasks */
1530
+ #define SQL_DD_DROP_DOMAIN 0x00000001L
1531
+ #define SQL_DD_RESTRICT 0x00000002L
1532
+ #define SQL_DD_CASCADE 0x00000004L
1533
+
1534
+ /* SQL_DROP_SCHEMA bitmasks */
1535
+ #define SQL_DS_DROP_SCHEMA 0x00000001L
1536
+ #define SQL_DS_RESTRICT 0x00000002L
1537
+ #define SQL_DS_CASCADE 0x00000004L
1538
+
1539
+ /* SQL_DROP_CHARACTER_SET bitmasks */
1540
+ #define SQL_DCS_DROP_CHARACTER_SET 0x00000001L
1541
+
1542
+ /* SQL_DROP_ASSERTION bitmasks */
1543
+ #define SQL_DA_DROP_ASSERTION 0x00000001L
1544
+
1545
+ /* SQL_DROP_TABLE bitmasks */
1546
+ #define SQL_DT_DROP_TABLE 0x00000001L
1547
+ #define SQL_DT_RESTRICT 0x00000002L
1548
+ #define SQL_DT_CASCADE 0x00000004L
1549
+
1550
+ /* SQL_DROP_TRANSLATION bitmasks */
1551
+ #define SQL_DTR_DROP_TRANSLATION 0x00000001L
1552
+
1553
+ /* SQL_DROP_VIEW bitmasks */
1554
+ #define SQL_DV_DROP_VIEW 0x00000001L
1555
+ #define SQL_DV_RESTRICT 0x00000002L
1556
+ #define SQL_DV_CASCADE 0x00000004L
1557
+
1558
+ /* SQL_INSERT_STATEMENT bitmasks */
1559
+ #define SQL_IS_INSERT_LITERALS 0x00000001L
1560
+ #define SQL_IS_INSERT_SEARCHED 0x00000002L
1561
+ #define SQL_IS_SELECT_INTO 0x00000004L
1562
+
1563
+ /* SQL_ODBC_INTERFACE_CONFORMANCE values */
1564
+ #define SQL_OIC_CORE 1UL
1565
+ #define SQL_OIC_LEVEL1 2UL
1566
+ #define SQL_OIC_LEVEL2 3UL
1567
+
1568
+ /* SQL_SQL92_FOREIGN_KEY_DELETE_RULE bitmasks */
1569
+ #define SQL_SFKD_CASCADE 0x00000001L
1570
+ #define SQL_SFKD_NO_ACTION 0x00000002L
1571
+ #define SQL_SFKD_SET_DEFAULT 0x00000004L
1572
+ #define SQL_SFKD_SET_NULL 0x00000008L
1573
+
1574
+ /* SQL_SQL92_FOREIGN_KEY_UPDATE_RULE bitmasks */
1575
+ #define SQL_SFKU_CASCADE 0x00000001L
1576
+ #define SQL_SFKU_NO_ACTION 0x00000002L
1577
+ #define SQL_SFKU_SET_DEFAULT 0x00000004L
1578
+ #define SQL_SFKU_SET_NULL 0x00000008L
1579
+
1580
+ /* SQL_SQL92_GRANT bitmasks */
1581
+ #define SQL_SG_USAGE_ON_DOMAIN 0x00000001L
1582
+ #define SQL_SG_USAGE_ON_CHARACTER_SET 0x00000002L
1583
+ #define SQL_SG_USAGE_ON_COLLATION 0x00000004L
1584
+ #define SQL_SG_USAGE_ON_TRANSLATION 0x00000008L
1585
+ #define SQL_SG_WITH_GRANT_OPTION 0x00000010L
1586
+ #define SQL_SG_DELETE_TABLE 0x00000020L
1587
+ #define SQL_SG_INSERT_TABLE 0x00000040L
1588
+ #define SQL_SG_INSERT_COLUMN 0x00000080L
1589
+ #define SQL_SG_REFERENCES_TABLE 0x00000100L
1590
+ #define SQL_SG_REFERENCES_COLUMN 0x00000200L
1591
+ #define SQL_SG_SELECT_TABLE 0x00000400L
1592
+ #define SQL_SG_UPDATE_TABLE 0x00000800L
1593
+ #define SQL_SG_UPDATE_COLUMN 0x00001000L
1594
+
1595
+ /* SQL_SQL92_PREDICATES bitmasks */
1596
+ #define SQL_SP_EXISTS 0x00000001L
1597
+ #define SQL_SP_ISNOTNULL 0x00000002L
1598
+ #define SQL_SP_ISNULL 0x00000004L
1599
+ #define SQL_SP_MATCH_FULL 0x00000008L
1600
+ #define SQL_SP_MATCH_PARTIAL 0x00000010L
1601
+ #define SQL_SP_MATCH_UNIQUE_FULL 0x00000020L
1602
+ #define SQL_SP_MATCH_UNIQUE_PARTIAL 0x00000040L
1603
+ #define SQL_SP_OVERLAPS 0x00000080L
1604
+ #define SQL_SP_UNIQUE 0x00000100L
1605
+ #define SQL_SP_LIKE 0x00000200L
1606
+ #define SQL_SP_IN 0x00000400L
1607
+ #define SQL_SP_BETWEEN 0x00000800L
1608
+ #define SQL_SP_COMPARISON 0x00001000L
1609
+ #define SQL_SP_QUANTIFIED_COMPARISON 0x00002000L
1610
+
1611
+ /* SQL_SQL92_RELATIONAL_JOIN_OPERATORS bitmasks */
1612
+ #define SQL_SRJO_CORRESPONDING_CLAUSE 0x00000001L
1613
+ #define SQL_SRJO_CROSS_JOIN 0x00000002L
1614
+ #define SQL_SRJO_EXCEPT_JOIN 0x00000004L
1615
+ #define SQL_SRJO_FULL_OUTER_JOIN 0x00000008L
1616
+ #define SQL_SRJO_INNER_JOIN 0x00000010L
1617
+ #define SQL_SRJO_INTERSECT_JOIN 0x00000020L
1618
+ #define SQL_SRJO_LEFT_OUTER_JOIN 0x00000040L
1619
+ #define SQL_SRJO_NATURAL_JOIN 0x00000080L
1620
+ #define SQL_SRJO_RIGHT_OUTER_JOIN 0x00000100L
1621
+ #define SQL_SRJO_UNION_JOIN 0x00000200L
1622
+
1623
+ /* SQL_SQL92_REVOKE bitmasks */
1624
+ #define SQL_SR_USAGE_ON_DOMAIN 0x00000001L
1625
+ #define SQL_SR_USAGE_ON_CHARACTER_SET 0x00000002L
1626
+ #define SQL_SR_USAGE_ON_COLLATION 0x00000004L
1627
+ #define SQL_SR_USAGE_ON_TRANSLATION 0x00000008L
1628
+ #define SQL_SR_GRANT_OPTION_FOR 0x00000010L
1629
+ #define SQL_SR_CASCADE 0x00000020L
1630
+ #define SQL_SR_RESTRICT 0x00000040L
1631
+ #define SQL_SR_DELETE_TABLE 0x00000080L
1632
+ #define SQL_SR_INSERT_TABLE 0x00000100L
1633
+ #define SQL_SR_INSERT_COLUMN 0x00000200L
1634
+ #define SQL_SR_REFERENCES_TABLE 0x00000400L
1635
+ #define SQL_SR_REFERENCES_COLUMN 0x00000800L
1636
+ #define SQL_SR_SELECT_TABLE 0x00001000L
1637
+ #define SQL_SR_UPDATE_TABLE 0x00002000L
1638
+ #define SQL_SR_UPDATE_COLUMN 0x00004000L
1639
+
1640
+ /* SQL_SQL92_ROW_VALUE_CONSTRUCTOR bitmasks */
1641
+ #define SQL_SRVC_VALUE_EXPRESSION 0x00000001L
1642
+ #define SQL_SRVC_NULL 0x00000002L
1643
+ #define SQL_SRVC_DEFAULT 0x00000004L
1644
+ #define SQL_SRVC_ROW_SUBQUERY 0x00000008L
1645
+
1646
+ /* SQL_SQL92_VALUE_EXPRESSIONS bitmasks */
1647
+ #define SQL_SVE_CASE 0x00000001L
1648
+ #define SQL_SVE_CAST 0x00000002L
1649
+ #define SQL_SVE_COALESCE 0x00000004L
1650
+ #define SQL_SVE_NULLIF 0x00000008L
1651
+
1652
+ /* SQL_STANDARD_CLI_CONFORMANCE bitmasks */
1653
+ #define SQL_SCC_XOPEN_CLI_VERSION1 0x00000001L
1654
+ #define SQL_SCC_ISO92_CLI 0x00000002L
1655
+
1656
+ /* SQL_UNION_STATEMENT bitmasks */
1657
+ #define SQL_US_UNION SQL_U_UNION
1658
+ #define SQL_US_UNION_ALL SQL_U_UNION_ALL
1659
+ #endif /* ODBCVER >= 0x0300 */
1660
+
1661
+ /* SQL_DTC_TRANSITION_COST bitmasks */
1662
+ #define SQL_DTC_ENLIST_EXPENSIVE 0x00000001L
1663
+ #define SQL_DTC_UNENLIST_EXPENSIVE 0x00000002L
1664
+
1665
+ #if (ODBCVER >= 0x0380)
1666
+ /* possible values for SQL_ASYNC_DBC_FUNCTIONS */
1667
+ #define SQL_ASYNC_DBC_NOT_CAPABLE 0x00000000L
1668
+ #define SQL_ASYNC_DBC_CAPABLE 0x00000001L
1669
+ #endif /* ODBCVER >= 0x0380 */
1670
+
1671
+ /* additional SQLDataSources fetch directions */
1672
+ #if (ODBCVER >= 0x0300)
1673
+ #define SQL_FETCH_FIRST_USER 31
1674
+ #define SQL_FETCH_FIRST_SYSTEM 32
1675
+ #endif /* ODBCVER >= 0x0300 */
1676
+
1677
+
1678
+ /* Defines for SQLSetPos */
1679
+ #define SQL_ENTIRE_ROWSET 0
1680
+
1681
+ /* Operations in SQLSetPos */
1682
+ #define SQL_POSITION 0 /* 1.0 FALSE */
1683
+ #define SQL_REFRESH 1 /* 1.0 TRUE */
1684
+ #define SQL_UPDATE 2
1685
+ #define SQL_DELETE 3
1686
+
1687
+ /* Operations in SQLBulkOperations */
1688
+ #define SQL_ADD 4
1689
+ #define SQL_SETPOS_MAX_OPTION_VALUE SQL_ADD
1690
+ #if (ODBCVER >= 0x0300)
1691
+ #define SQL_UPDATE_BY_BOOKMARK 5
1692
+ #define SQL_DELETE_BY_BOOKMARK 6
1693
+ #define SQL_FETCH_BY_BOOKMARK 7
1694
+
1695
+ #endif /* ODBCVER >= 0x0300 */
1696
+
1697
+ /* Lock options in SQLSetPos */
1698
+ #define SQL_LOCK_NO_CHANGE 0 /* 1.0 FALSE */
1699
+ #define SQL_LOCK_EXCLUSIVE 1 /* 1.0 TRUE */
1700
+ #define SQL_LOCK_UNLOCK 2
1701
+
1702
+ #define SQL_SETPOS_MAX_LOCK_VALUE SQL_LOCK_UNLOCK
1703
+
1704
+ /* Macros for SQLSetPos */
1705
+ #define SQL_POSITION_TO(hstmt,irow) SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
1706
+ #define SQL_LOCK_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
1707
+ #define SQL_REFRESH_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
1708
+ #define SQL_UPDATE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
1709
+ #define SQL_DELETE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
1710
+ #define SQL_ADD_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
1711
+
1712
+ /* Column types and scopes in SQLSpecialColumns. */
1713
+ #define SQL_BEST_ROWID 1
1714
+ #define SQL_ROWVER 2
1715
+
1716
+ /* Defines for SQLSpecialColumns (returned in the result set)
1717
+ SQL_PC_UNKNOWN and SQL_PC_PSEUDO are defined in sql.h */
1718
+ #define SQL_PC_NOT_PSEUDO 1
1719
+
1720
+ /* Defines for SQLStatistics */
1721
+ #define SQL_QUICK 0
1722
+ #define SQL_ENSURE 1
1723
+
1724
+ /* Defines for SQLStatistics (returned in the result set)
1725
+ SQL_INDEX_CLUSTERED, SQL_INDEX_HASHED, and SQL_INDEX_OTHER are
1726
+ defined in sql.h */
1727
+ #define SQL_TABLE_STAT 0
1728
+
1729
+
1730
+ /* Defines for SQLTables */
1731
+ #if (ODBCVER >= 0x0300)
1732
+ #define SQL_ALL_CATALOGS "%"
1733
+ #define SQL_ALL_SCHEMAS "%"
1734
+ #define SQL_ALL_TABLE_TYPES "%"
1735
+ #endif /* ODBCVER >= 0x0300 */
1736
+
1737
+ /* Options for SQLDriverConnect */
1738
+ #define SQL_DRIVER_NOPROMPT 0
1739
+ #define SQL_DRIVER_COMPLETE 1
1740
+ #define SQL_DRIVER_PROMPT 2
1741
+ #define SQL_DRIVER_COMPLETE_REQUIRED 3
1742
+
1743
+ #ifndef RC_INVOKED
1744
+
1745
+ SQLRETURN SQL_API SQLDriverConnect(
1746
+ SQLHDBC hdbc,
1747
+ SQLHWND hwnd,
1748
+ __in_ecount(cchConnStrIn)
1749
+ SQLCHAR *szConnStrIn,
1750
+ SQLSMALLINT cchConnStrIn,
1751
+ __out_ecount_opt(cchConnStrOutMax)
1752
+ SQLCHAR *szConnStrOut,
1753
+ SQLSMALLINT cchConnStrOutMax,
1754
+ __out_opt
1755
+ SQLSMALLINT *pcchConnStrOut,
1756
+ SQLUSMALLINT fDriverCompletion);
1757
+
1758
+ #endif /* RC_INVOKED */
1759
+
1760
+ /* Level 2 Functions */
1761
+
1762
+ /* SQLExtendedFetch "fFetchType" values */
1763
+ #define SQL_FETCH_BOOKMARK 8
1764
+
1765
+ /* SQLExtendedFetch "rgfRowStatus" element values */
1766
+ #define SQL_ROW_SUCCESS 0
1767
+ #define SQL_ROW_DELETED 1
1768
+ #define SQL_ROW_UPDATED 2
1769
+ #define SQL_ROW_NOROW 3
1770
+ #define SQL_ROW_ADDED 4
1771
+ #define SQL_ROW_ERROR 5
1772
+ #if (ODBCVER >= 0x0300)
1773
+ #define SQL_ROW_SUCCESS_WITH_INFO 6
1774
+ #define SQL_ROW_PROCEED 0
1775
+ #define SQL_ROW_IGNORE 1
1776
+ #endif
1777
+
1778
+ /* value for SQL_DESC_ARRAY_STATUS_PTR */
1779
+ #if (ODBCVER >= 0x0300)
1780
+ #define SQL_PARAM_SUCCESS 0
1781
+ #define SQL_PARAM_SUCCESS_WITH_INFO 6
1782
+ #define SQL_PARAM_ERROR 5
1783
+ #define SQL_PARAM_UNUSED 7
1784
+ #define SQL_PARAM_DIAG_UNAVAILABLE 1
1785
+
1786
+ #define SQL_PARAM_PROCEED 0
1787
+ #define SQL_PARAM_IGNORE 1
1788
+ #endif /* ODBCVER >= 0x0300 */
1789
+
1790
+ /* Defines for SQLForeignKeys (UPDATE_RULE and DELETE_RULE) */
1791
+ #define SQL_CASCADE 0
1792
+ #define SQL_RESTRICT 1
1793
+ #define SQL_SET_NULL 2
1794
+ #if (ODBCVER >= 0x0250)
1795
+ #define SQL_NO_ACTION 3
1796
+ #define SQL_SET_DEFAULT 4
1797
+ #endif /* ODBCVER >= 0x0250 */
1798
+
1799
+ #if (ODBCVER >= 0x0300)
1800
+ /* Note that the following are in a different column of SQLForeignKeys than */
1801
+ /* the previous #defines. These are for DEFERRABILITY. */
1802
+
1803
+ #define SQL_INITIALLY_DEFERRED 5
1804
+ #define SQL_INITIALLY_IMMEDIATE 6
1805
+ #define SQL_NOT_DEFERRABLE 7
1806
+
1807
+ #endif /* ODBCVER >= 0x0300 */
1808
+
1809
+ /* Defines for SQLBindParameter and
1810
+ SQLProcedureColumns (returned in the result set) */
1811
+ #define SQL_PARAM_TYPE_UNKNOWN 0
1812
+ #define SQL_PARAM_INPUT 1
1813
+ #define SQL_PARAM_INPUT_OUTPUT 2
1814
+ #define SQL_RESULT_COL 3
1815
+ #define SQL_PARAM_OUTPUT 4
1816
+ #define SQL_RETURN_VALUE 5
1817
+ #if (ODBCVER >= 0x0380)
1818
+ #define SQL_PARAM_INPUT_OUTPUT_STREAM 8
1819
+ #define SQL_PARAM_OUTPUT_STREAM 16
1820
+ #endif
1821
+
1822
+ /* Defines for SQLProcedures (returned in the result set) */
1823
+ #define SQL_PT_UNKNOWN 0
1824
+ #define SQL_PT_PROCEDURE 1
1825
+ #define SQL_PT_FUNCTION 2
1826
+
1827
+ #ifndef RC_INVOKED
1828
+
1829
+ /* This define is too large for RC */
1830
+ #define SQL_ODBC_KEYWORDS \
1831
+ "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\
1832
+ "ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\
1833
+ "BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\
1834
+ "CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\
1835
+ "COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\
1836
+ "CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\
1837
+ "CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\
1838
+ "DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"\
1839
+ "DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\
1840
+ "DISTINCT,DOMAIN,DOUBLE,DROP,"\
1841
+ "ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"\
1842
+ "EXISTS,EXTERNAL,EXTRACT,"\
1843
+ "FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\
1844
+ "GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\
1845
+ "IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\
1846
+ "INPUT,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"\
1847
+ "JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\
1848
+ "MATCH,MAX,MIN,MINUTE,MODULE,MONTH,"\
1849
+ "NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\
1850
+ "OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\
1851
+ "PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\
1852
+ "PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\
1853
+ "READ,REAL,REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS"\
1854
+ "SCHEMA,SCROLL,SECOND,SECTION,SELECT,SESSION,SESSION_USER,SET,SIZE,"\
1855
+ "SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\
1856
+ "SUBSTRING,SUM,SYSTEM_USER,"\
1857
+ "TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\
1858
+ "TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\
1859
+ "UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\
1860
+ "VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,WRITE,"\
1861
+ "YEAR,ZONE"
1862
+
1863
+ SQLRETURN SQL_API SQLBrowseConnect(
1864
+ SQLHDBC hdbc,
1865
+ __in_ecount(cchConnStrIn)
1866
+ SQLCHAR *szConnStrIn,
1867
+ SQLSMALLINT cchConnStrIn,
1868
+ __out_ecount_opt(cchConnStrOutMax)
1869
+ SQLCHAR *szConnStrOut,
1870
+ SQLSMALLINT cchConnStrOutMax,
1871
+ __out_opt
1872
+ SQLSMALLINT *pcchConnStrOut);
1873
+
1874
+ #if (ODBCVER >= 0x0300)
1875
+ SQLRETURN SQL_API SQLBulkOperations(
1876
+ SQLHSTMT StatementHandle,
1877
+ SQLSMALLINT Operation);
1878
+ #endif /* ODBCVER >= 0x0300 */
1879
+
1880
+ SQLRETURN SQL_API SQLColAttributes(
1881
+ SQLHSTMT hstmt,
1882
+ SQLUSMALLINT icol,
1883
+ SQLUSMALLINT fDescType,
1884
+ SQLPOINTER rgbDesc,
1885
+ SQLSMALLINT cbDescMax,
1886
+ SQLSMALLINT *pcbDesc,
1887
+ SQLLEN * pfDesc);
1888
+
1889
+ SQLRETURN SQL_API SQLColumnPrivileges(
1890
+ SQLHSTMT hstmt,
1891
+ __in_ecount_opt(cchCatalogName)
1892
+ SQLCHAR *szCatalogName,
1893
+ SQLSMALLINT cchCatalogName,
1894
+ __in_ecount_opt(cchSchemaName)
1895
+ SQLCHAR *szSchemaName,
1896
+ SQLSMALLINT cchSchemaName,
1897
+ __in_ecount_opt(cchTableName)
1898
+ SQLCHAR *szTableName,
1899
+ SQLSMALLINT cchTableName,
1900
+ __in_ecount_opt(cchColumnName)
1901
+ SQLCHAR *szColumnName,
1902
+ SQLSMALLINT cchColumnName);
1903
+
1904
+ SQLRETURN SQL_API SQLDescribeParam(
1905
+ SQLHSTMT hstmt,
1906
+ SQLUSMALLINT ipar,
1907
+ __out_opt
1908
+ SQLSMALLINT *pfSqlType,
1909
+ __out_opt
1910
+ SQLULEN *pcbParamDef,
1911
+ __out_opt
1912
+ SQLSMALLINT *pibScale,
1913
+ __out_opt
1914
+ SQLSMALLINT *pfNullable);
1915
+
1916
+ SQLRETURN SQL_API SQLExtendedFetch(
1917
+ SQLHSTMT hstmt,
1918
+ SQLUSMALLINT fFetchType,
1919
+ SQLLEN irow,
1920
+ __out_opt
1921
+ SQLULEN *pcrow,
1922
+ __out_opt
1923
+ SQLUSMALLINT *rgfRowStatus);
1924
+
1925
+ SQLRETURN SQL_API SQLForeignKeys(
1926
+ SQLHSTMT hstmt,
1927
+ __in_ecount_opt(cchPkCatalogName)
1928
+ SQLCHAR *szPkCatalogName,
1929
+ SQLSMALLINT cchPkCatalogName,
1930
+ __in_ecount_opt(cchPkSchemaName)
1931
+ SQLCHAR *szPkSchemaName,
1932
+ SQLSMALLINT cchPkSchemaName,
1933
+ __in_ecount_opt(cchPkTableName)
1934
+ SQLCHAR *szPkTableName,
1935
+ SQLSMALLINT cchPkTableName,
1936
+ __in_ecount_opt(cchFkCatalogName)
1937
+ SQLCHAR *szFkCatalogName,
1938
+ SQLSMALLINT cchFkCatalogName,
1939
+ __in_ecount_opt(cchFkSchemaName)
1940
+ SQLCHAR *szFkSchemaName,
1941
+ SQLSMALLINT cchFkSchemaName,
1942
+ __in_ecount_opt(cchFkTableName)
1943
+ SQLCHAR *szFkTableName,
1944
+ SQLSMALLINT cchFkTableName);
1945
+
1946
+ SQLRETURN SQL_API SQLMoreResults(
1947
+ SQLHSTMT hstmt);
1948
+
1949
+ SQLRETURN SQL_API SQLNativeSql
1950
+ (
1951
+ SQLHDBC hdbc,
1952
+ __in_ecount(cchSqlStrIn) SQLCHAR* szSqlStrIn,
1953
+ SQLINTEGER cchSqlStrIn,
1954
+ __out_ecount_opt(cchSqlStrMax) SQLCHAR* szSqlStr,
1955
+ SQLINTEGER cchSqlStrMax,
1956
+ SQLINTEGER *pcbSqlStr
1957
+ );
1958
+
1959
+ SQLRETURN SQL_API SQLNumParams(
1960
+ SQLHSTMT hstmt,
1961
+ __out_opt
1962
+ SQLSMALLINT *pcpar);
1963
+
1964
+ SQLRETURN SQL_API SQLParamOptions(
1965
+ SQLHSTMT hstmt,
1966
+ SQLULEN crow,
1967
+ SQLULEN *pirow);
1968
+
1969
+ SQLRETURN SQL_API SQLPrimaryKeys(
1970
+ SQLHSTMT hstmt,
1971
+ __in_ecount_opt(cchCatalogName)
1972
+ SQLCHAR *szCatalogName,
1973
+ SQLSMALLINT cchCatalogName,
1974
+ __in_ecount_opt(cchSchemaName)
1975
+ SQLCHAR *szSchemaName,
1976
+ SQLSMALLINT cchSchemaName,
1977
+ __in_ecount_opt(cchTableName)
1978
+ SQLCHAR *szTableName,
1979
+ SQLSMALLINT cchTableName);
1980
+
1981
+ SQLRETURN SQL_API SQLProcedureColumns(
1982
+ SQLHSTMT hstmt,
1983
+ __in_ecount_opt(cchCatalogName)
1984
+ SQLCHAR *szCatalogName,
1985
+ SQLSMALLINT cchCatalogName,
1986
+ __in_ecount_opt(cchSchemaName)
1987
+ SQLCHAR *szSchemaName,
1988
+ SQLSMALLINT cchSchemaName,
1989
+ __in_ecount_opt(cchProcName)
1990
+ SQLCHAR *szProcName,
1991
+ SQLSMALLINT cchProcName,
1992
+ __in_ecount_opt(cchColumnName)
1993
+ SQLCHAR *szColumnName,
1994
+ SQLSMALLINT cchColumnName);
1995
+
1996
+ SQLRETURN SQL_API SQLProcedures(
1997
+ SQLHSTMT hstmt,
1998
+ __in_ecount_opt(cchCatalogName)
1999
+ SQLCHAR *szCatalogName,
2000
+ SQLSMALLINT cchCatalogName,
2001
+ __in_ecount_opt(cchSchemaName)
2002
+ SQLCHAR *szSchemaName,
2003
+ SQLSMALLINT cchSchemaName,
2004
+ __in_ecount_opt(cchProcName)
2005
+ SQLCHAR *szProcName,
2006
+ SQLSMALLINT cchProcName);
2007
+
2008
+
2009
+
2010
+ SQLRETURN SQL_API SQLSetPos(
2011
+ SQLHSTMT hstmt,
2012
+ SQLSETPOSIROW irow,
2013
+ SQLUSMALLINT fOption,
2014
+ SQLUSMALLINT fLock);
2015
+
2016
+ SQLRETURN SQL_API SQLTablePrivileges(
2017
+ SQLHSTMT hstmt,
2018
+ __in_ecount_opt(cchCatalogName)
2019
+ SQLCHAR *szCatalogName,
2020
+ SQLSMALLINT cchCatalogName,
2021
+ __in_ecount_opt(cchSchemaName)
2022
+ SQLCHAR *szSchemaName,
2023
+ SQLSMALLINT cchSchemaName,
2024
+ __in_ecount_opt(cchTableName)
2025
+ SQLCHAR *szTableName,
2026
+ SQLSMALLINT cchTableName);
2027
+
2028
+ SQLRETURN SQL_API SQLDrivers(
2029
+ SQLHENV henv,
2030
+ SQLUSMALLINT fDirection,
2031
+ __out_ecount_opt(cchDriverDescMax)
2032
+ SQLCHAR *szDriverDesc,
2033
+ SQLSMALLINT cchDriverDescMax,
2034
+ __out_opt
2035
+ SQLSMALLINT *pcchDriverDesc,
2036
+ __out_ecount_opt(cchDrvrAttrMax)
2037
+ SQLCHAR *szDriverAttributes,
2038
+ SQLSMALLINT cchDrvrAttrMax,
2039
+ __out_opt
2040
+ SQLSMALLINT *pcchDrvrAttr);
2041
+
2042
+ SQLRETURN SQL_API SQLBindParameter(
2043
+ SQLHSTMT hstmt,
2044
+ SQLUSMALLINT ipar,
2045
+ SQLSMALLINT fParamType,
2046
+ SQLSMALLINT fCType,
2047
+ SQLSMALLINT fSqlType,
2048
+ SQLULEN cbColDef,
2049
+ SQLSMALLINT ibScale,
2050
+ SQLPOINTER rgbValue,
2051
+ SQLLEN cbValueMax,
2052
+ SQLLEN *pcbValue);
2053
+
2054
+
2055
+ #endif /* RC_INVOKED */
2056
+
2057
+ /*---------------------------------------------------------*/
2058
+ /* SQLAllocHandleStd is implemented to make SQLAllocHandle */
2059
+ /* compatible with X/Open standard. an application should */
2060
+ /* not call SQLAllocHandleStd directly */
2061
+ /*---------------------------------------------------------*/
2062
+ #ifdef ODBC_STD
2063
+ #define SQLAllocHandle SQLAllocHandleStd
2064
+ #define SQLAllocEnv(phenv) SQLAllocHandleStd(SQL_HANDLE_ENV, SQL_NULL_HANDLE, phenv)
2065
+
2066
+ /* Internal type subcodes */
2067
+ #define SQL_YEAR SQL_CODE_YEAR
2068
+ #define SQL_MONTH SQL_CODE_MONTH
2069
+ #define SQL_DAY SQL_CODE_DAY
2070
+ #define SQL_HOUR SQL_CODE_HOUR
2071
+ #define SQL_MINUTE SQL_CODE_MINUTE
2072
+ #define SQL_SECOND SQL_CODE_SECOND
2073
+ #define SQL_YEAR_TO_MONTH SQL_CODE_YEAR_TO_MONTH
2074
+ #define SQL_DAY_TO_HOUR SQL_CODE_DAY_TO_HOUR
2075
+ #define SQL_DAY_TO_MINUTE SQL_CODE_DAY_TO_MINUTE
2076
+ #define SQL_DAY_TO_SECOND SQL_CODE_DAY_TO_SECOND
2077
+ #define SQL_HOUR_TO_MINUTE SQL_CODE_HOUR_TO_MINUTE
2078
+ #define SQL_HOUR_TO_SECOND SQL_CODE_HOUR_TO_SECOND
2079
+ #define SQL_MINUTE_TO_SECOND SQL_CODE_MINUTE_TO_SECOND
2080
+ #endif /* ODBC_STD */
2081
+
2082
+ #if (ODBCVER >= 0x0300)
2083
+ #ifndef RC_INVOKED
2084
+ SQLRETURN SQL_API SQLAllocHandleStd(
2085
+ SQLSMALLINT fHandleType,
2086
+ SQLHANDLE hInput,
2087
+ __out
2088
+ SQLHANDLE *phOutput);
2089
+ #endif /* RC_INVOKED */
2090
+ #endif
2091
+
2092
+ /* Deprecated defines from prior versions of ODBC */
2093
+ #define SQL_DATABASE_NAME 16 /* Use SQLGetConnectOption/SQL_CURRENT_QUALIFIER */
2094
+ #define SQL_FD_FETCH_PREV SQL_FD_FETCH_PRIOR
2095
+ #define SQL_FETCH_PREV SQL_FETCH_PRIOR
2096
+ #define SQL_CONCUR_TIMESTAMP SQL_CONCUR_ROWVER
2097
+ #define SQL_SCCO_OPT_TIMESTAMP SQL_SCCO_OPT_ROWVER
2098
+ #define SQL_CC_DELETE SQL_CB_DELETE
2099
+ #define SQL_CR_DELETE SQL_CB_DELETE
2100
+ #define SQL_CC_CLOSE SQL_CB_CLOSE
2101
+ #define SQL_CR_CLOSE SQL_CB_CLOSE
2102
+ #define SQL_CC_PRESERVE SQL_CB_PRESERVE
2103
+ #define SQL_CR_PRESERVE SQL_CB_PRESERVE
2104
+ /* SQL_FETCH_RESUME is not supported by 2.0+ drivers
2105
+ #define SQL_FETCH_RESUME 7
2106
+ */
2107
+ #define SQL_SCROLL_FORWARD_ONLY 0L /*-SQL_CURSOR_FORWARD_ONLY */
2108
+ #define SQL_SCROLL_KEYSET_DRIVEN (-1L) /*-SQL_CURSOR_KEYSET_DRIVEN */
2109
+ #define SQL_SCROLL_DYNAMIC (-2L) /*-SQL_CURSOR_DYNAMIC */
2110
+ #define SQL_SCROLL_STATIC (-3L) /*-SQL_CURSOR_STATIC */
2111
+
2112
+ /* Deprecated functions from prior versions of ODBC */
2113
+ #ifndef RC_INVOKED
2114
+
2115
+ SQLRETURN SQL_API SQLSetScrollOptions( /* Use SQLSetStmtOptions */
2116
+ SQLHSTMT hstmt,
2117
+ SQLUSMALLINT fConcurrency,
2118
+ SQLLEN crowKeyset,
2119
+ SQLUSMALLINT crowRowset);
2120
+
2121
+ /* Tracing section */
2122
+
2123
+ #define TRACE_VERSION 1000 /* Version of trace API */
2124
+
2125
+ /* open a trace log file */
2126
+ RETCODE SQL_API TraceOpenLogFile
2127
+ (
2128
+ __in_opt LPWSTR szFileName,
2129
+ __out_bcount_opt(cbOutputMsg) LPWSTR lpwszOutputMsg,
2130
+ __in DWORD cbOutputMsg
2131
+ );
2132
+
2133
+ RETCODE SQL_API TraceCloseLogFile(); /* Request to close a trace log */
2134
+ VOID SQL_API TraceReturn(RETCODE,RETCODE); /* Processes trace after FN is called */
2135
+ DWORD SQL_API TraceVersion(); /* Returns trace API version */
2136
+
2137
+ /* Functions for Visual Studio Analyzer*/
2138
+ /* to turn on/off tracing or VS events, call TraceVSControl by setting or clearing the following bits */
2139
+ #define TRACE_ON 0x00000001L
2140
+ #define TRACE_VS_EVENT_ON 0x00000002L
2141
+
2142
+ RETCODE SQL_API TraceVSControl(DWORD);
2143
+
2144
+ /* Functions for setting the connection pooling failure detection code */
2145
+ /* The "TryWait" value is the time (in seconds) that the DM will wait */
2146
+ /* between detecting that a connection is dead (using */
2147
+ /* SQL_ATTR_CONNECTION_DEAD) and retrying the connection. During that */
2148
+ /* interval, connection requests will get "The server appears to be */
2149
+ /* dead" error returns. */
2150
+
2151
+
2152
+ BOOL SQL_API ODBCSetTryWaitValue(DWORD dwValue); /* In seconds */
2153
+ DWORD SQL_API ODBCGetTryWaitValue(); /* In Milliseconds(!) */
2154
+
2155
+
2156
+ /* the flags in ODBC_VS_ARGS */
2157
+ #define ODBC_VS_FLAG_UNICODE_ARG 0x00000001L /* the argument is unicode */
2158
+ #define ODBC_VS_FLAG_UNICODE_COR 0x00000002L /* the correlation is unicode */
2159
+ #define ODBC_VS_FLAG_RETCODE 0x00000004L /* RetCode field is set */
2160
+ #define ODBC_VS_FLAG_STOP 0x00000008L /* Stop firing visual studio analyzer events */
2161
+
2162
+ typedef struct tagODBC_VS_ARGS {
2163
+ const GUID *pguidEvent; /* the GUID for event */
2164
+ DWORD dwFlags; /* flags for the call */
2165
+ union {
2166
+ WCHAR *wszArg;
2167
+ CHAR *szArg;
2168
+ };
2169
+ union {
2170
+ WCHAR *wszCorrelation;
2171
+ CHAR *szCorrelation;
2172
+ };
2173
+ RETCODE RetCode;
2174
+ } ODBC_VS_ARGS, *PODBC_VS_ARGS;
2175
+ VOID SQL_API FireVSDebugEvent(PODBC_VS_ARGS);
2176
+
2177
+ #endif /* RC_INVOKED */
2178
+
2179
+
2180
+ #ifdef __cplusplus
2181
+ } /* End of extern "C" { */
2182
+ #endif /* __cplusplus */
2183
+
2184
+ #if defined(WIN32) || defined(_WIN64)
2185
+ #include "sqlucode.h"
2186
+ #endif
2187
+
2188
+ #endif /* __SQLEXT */
2189
+