1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef __SQL
7 #define __SQL
8 
9 #ifndef ODBCVER
10 #define ODBCVER 0x0351
11 #endif
12 
13 #include <sqltypes.h>
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 #define SQL_NULL_DATA (-1)
20 #define SQL_DATA_AT_EXEC (-2)
21 
22 #define SQL_SUCCESS 0
23 #define SQL_SUCCESS_WITH_INFO 1
24 #if (ODBCVER >= 0x0300)
25 #define SQL_NO_DATA 100
26 #endif
27 #define SQL_ERROR (-1)
28 #define SQL_INVALID_HANDLE (-2)
29 
30 #define SQL_STILL_EXECUTING 2
31 #define SQL_NEED_DATA 99
32 
33 #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
34 
35 #define SQL_NTS (-3)
36 #define SQL_NTSL (__MSABI_LONG(-3))
37 
38 #define SQL_MAX_MESSAGE_LENGTH 512
39 
40 #if (ODBCVER >= 0x0300)
41 #define SQL_DATE_LEN 10
42 #define SQL_TIME_LEN 8
43 #define SQL_TIMESTAMP_LEN 19
44 #endif
45 
46 #if (ODBCVER >= 0x0300)
47 #define SQL_HANDLE_ENV 1
48 #define SQL_HANDLE_DBC 2
49 #define SQL_HANDLE_STMT 3
50 #define SQL_HANDLE_DESC 4
51 #endif
52 
53 #if (ODBCVER >= 0x0300)
54 #define SQL_ATTR_OUTPUT_NTS 10001
55 #endif
56 
57 #if (ODBCVER >= 0x0300)
58 #define SQL_ATTR_AUTO_IPD 10001
59 #define SQL_ATTR_METADATA_ID 10014
60 #endif
61 
62 #if (ODBCVER >= 0x0300)
63 #define SQL_ATTR_APP_ROW_DESC 10010
64 #define SQL_ATTR_APP_PARAM_DESC 10011
65 #define SQL_ATTR_IMP_ROW_DESC 10012
66 #define SQL_ATTR_IMP_PARAM_DESC 10013
67 #define SQL_ATTR_CURSOR_SCROLLABLE (-1)
68 #define SQL_ATTR_CURSOR_SENSITIVITY (-2)
69 #endif
70 
71 #if (ODBCVER >= 0x0300)
72 #define SQL_NONSCROLLABLE 0
73 #define SQL_SCROLLABLE 1
74 #endif
75 
76 #if (ODBCVER >= 0x0300)
77 #define SQL_DESC_COUNT 1001
78 #define SQL_DESC_TYPE 1002
79 #define SQL_DESC_LENGTH 1003
80 #define SQL_DESC_OCTET_LENGTH_PTR 1004
81 #define SQL_DESC_PRECISION 1005
82 #define SQL_DESC_SCALE 1006
83 #define SQL_DESC_DATETIME_INTERVAL_CODE 1007
84 #define SQL_DESC_NULLABLE 1008
85 #define SQL_DESC_INDICATOR_PTR 1009
86 #define SQL_DESC_DATA_PTR 1010
87 #define SQL_DESC_NAME 1011
88 #define SQL_DESC_UNNAMED 1012
89 #define SQL_DESC_OCTET_LENGTH 1013
90 #define SQL_DESC_ALLOC_TYPE 1099
91 #endif
92 
93 #if (ODBCVER >= 0x0300)
94 #define SQL_DIAG_RETURNCODE 1
95 #define SQL_DIAG_NUMBER 2
96 #define SQL_DIAG_ROW_COUNT 3
97 #define SQL_DIAG_SQLSTATE 4
98 #define SQL_DIAG_NATIVE 5
99 #define SQL_DIAG_MESSAGE_TEXT 6
100 #define SQL_DIAG_DYNAMIC_FUNCTION 7
101 #define SQL_DIAG_CLASS_ORIGIN 8
102 #define SQL_DIAG_SUBCLASS_ORIGIN 9
103 #define SQL_DIAG_CONNECTION_NAME 10
104 #define SQL_DIAG_SERVER_NAME 11
105 #define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12
106 #endif
107 
108 #if (ODBCVER >= 0x0300)
109 #define SQL_DIAG_ALTER_DOMAIN 3
110 #define SQL_DIAG_ALTER_TABLE 4
111 #define SQL_DIAG_CALL 7
112 #define SQL_DIAG_CREATE_ASSERTION 6
113 #define SQL_DIAG_CREATE_CHARACTER_SET 8
114 #define SQL_DIAG_CREATE_COLLATION 10
115 #define SQL_DIAG_CREATE_DOMAIN 23
116 #define SQL_DIAG_CREATE_INDEX (-1)
117 #define SQL_DIAG_CREATE_SCHEMA 64
118 #define SQL_DIAG_CREATE_TABLE 77
119 #define SQL_DIAG_CREATE_TRANSLATION 79
120 #define SQL_DIAG_CREATE_VIEW 84
121 #define SQL_DIAG_DELETE_WHERE 19
122 #define SQL_DIAG_DROP_ASSERTION 24
123 #define SQL_DIAG_DROP_CHARACTER_SET 25
124 #define SQL_DIAG_DROP_COLLATION 26
125 #define SQL_DIAG_DROP_DOMAIN 27
126 #define SQL_DIAG_DROP_INDEX (-2)
127 #define SQL_DIAG_DROP_SCHEMA 31
128 #define SQL_DIAG_DROP_TABLE 32
129 #define SQL_DIAG_DROP_TRANSLATION 33
130 #define SQL_DIAG_DROP_VIEW 36
131 #define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38
132 #define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81
133 #define SQL_DIAG_GRANT 48
134 #define SQL_DIAG_INSERT 50
135 #define SQL_DIAG_REVOKE 59
136 #define SQL_DIAG_SELECT_CURSOR 85
137 #define SQL_DIAG_UNKNOWN_STATEMENT 0
138 #define SQL_DIAG_UPDATE_WHERE 82
139 #endif
140 
141 #define SQL_UNKNOWN_TYPE 0
142 #define SQL_CHAR 1
143 #define SQL_NUMERIC 2
144 #define SQL_DECIMAL 3
145 #define SQL_INTEGER 4
146 #define SQL_SMALLINT 5
147 #define SQL_FLOAT 6
148 #define SQL_REAL 7
149 #define SQL_DOUBLE 8
150 #if (ODBCVER >= 0x0300)
151 #define SQL_DATETIME 9
152 #endif
153 #define SQL_VARCHAR 12
154 
155 #if (ODBCVER >= 0x0300)
156 #define SQL_TYPE_DATE 91
157 #define SQL_TYPE_TIME 92
158 #define SQL_TYPE_TIMESTAMP 93
159 #endif
160 
161 #if (ODBCVER >= 0x0300)
162 #define SQL_UNSPECIFIED 0
163 #define SQL_INSENSITIVE 1
164 #define SQL_SENSITIVE 2
165 #endif
166 
167 #define SQL_ALL_TYPES 0
168 
169 #if (ODBCVER >= 0x0300)
170 #define SQL_DEFAULT 99
171 #endif
172 
173 #if (ODBCVER >= 0x0300)
174 #define SQL_ARD_TYPE (-99)
175 #endif
176 
177 #if (ODBCVER >= 0x0300)
178 #define SQL_CODE_DATE 1
179 #define SQL_CODE_TIME 2
180 #define SQL_CODE_TIMESTAMP 3
181 #endif
182 
183 #if (ODBCVER >= 0x0300)
184 #define SQL_FALSE 0
185 #define SQL_TRUE 1
186 #endif
187 
188 #define SQL_NO_NULLS 0
189 #define SQL_NULLABLE 1
190 
191 #define SQL_NULLABLE_UNKNOWN 2
192 
193 #if (ODBCVER >= 0x0300)
194 #define SQL_PRED_NONE 0
195 #define SQL_PRED_CHAR 1
196 #define SQL_PRED_BASIC 2
197 #endif
198 
199 #if (ODBCVER >= 0x0300)
200 #define SQL_NAMED 0
201 #define SQL_UNNAMED 1
202 #endif
203 
204 #if (ODBCVER >= 0x0300)
205 #define SQL_DESC_ALLOC_AUTO 1
206 #define SQL_DESC_ALLOC_USER 2
207 #endif
208 
209 #define SQL_CLOSE 0
210 #define SQL_DROP 1
211 #define SQL_UNBIND 2
212 #define SQL_RESET_PARAMS 3
213 
214 #define SQL_FETCH_NEXT 1
215 #define SQL_FETCH_FIRST 2
216 
217 #define SQL_FETCH_LAST 3
218 #define SQL_FETCH_PRIOR 4
219 #define SQL_FETCH_ABSOLUTE 5
220 #define SQL_FETCH_RELATIVE 6
221 
222 #define SQL_COMMIT 0
223 #define SQL_ROLLBACK 1
224 
225 #define SQL_NULL_HENV 0
226 #define SQL_NULL_HDBC 0
227 #define SQL_NULL_HSTMT 0
228 #if (ODBCVER >= 0x0300)
229 #define SQL_NULL_HDESC 0
230 #endif
231 
232 #if (ODBCVER >= 0x0300)
233 #define SQL_NULL_HANDLE __MSABI_LONG(0)
234 #endif
235 
236 #define SQL_SCOPE_CURROW 0
237 #define SQL_SCOPE_TRANSACTION 1
238 #define SQL_SCOPE_SESSION 2
239 
240 #define SQL_PC_UNKNOWN 0
241 #if (ODBCVER >= 0x0300)
242 #define SQL_PC_NON_PSEUDO 1
243 #endif
244 #define SQL_PC_PSEUDO 2
245 
246 #if (ODBCVER >= 0x0300)
247 #define SQL_ROW_IDENTIFIER 1
248 #endif
249 
250 #define SQL_INDEX_UNIQUE 0
251 #define SQL_INDEX_ALL 1
252 
253 #define SQL_INDEX_CLUSTERED 1
254 #define SQL_INDEX_HASHED 2
255 #define SQL_INDEX_OTHER 3
256 
257 #define SQL_API_SQLALLOCCONNECT 1
258 #define SQL_API_SQLALLOCENV 2
259 #if (ODBCVER >= 0x0300)
260 #define SQL_API_SQLALLOCHANDLE 1001
261 #endif
262 #define SQL_API_SQLALLOCSTMT 3
263 #define SQL_API_SQLBINDCOL 4
264 #if (ODBCVER >= 0x0300)
265 #define SQL_API_SQLBINDPARAM 1002
266 #endif
267 #define SQL_API_SQLCANCEL 5
268 #if (ODBCVER >= 0x0300)
269 #define SQL_API_SQLCLOSECURSOR 1003
270 #define SQL_API_SQLCOLATTRIBUTE 6
271 #endif
272 #define SQL_API_SQLCOLUMNS 40
273 #define SQL_API_SQLCONNECT 7
274 #if (ODBCVER >= 0x0300)
275 #define SQL_API_SQLCOPYDESC 1004
276 #endif
277 #define SQL_API_SQLDATASOURCES 57
278 #define SQL_API_SQLDESCRIBECOL 8
279 #define SQL_API_SQLDISCONNECT 9
280 #if (ODBCVER >= 0x0300)
281 #define SQL_API_SQLENDTRAN 1005
282 #endif
283 #define SQL_API_SQLERROR 10
284 #define SQL_API_SQLEXECDIRECT 11
285 #define SQL_API_SQLEXECUTE 12
286 #define SQL_API_SQLFETCH 13
287 #if (ODBCVER >= 0x0300)
288 #define SQL_API_SQLFETCHSCROLL 1021
289 #endif
290 #define SQL_API_SQLFREECONNECT 14
291 #define SQL_API_SQLFREEENV 15
292 #if (ODBCVER >= 0x0300)
293 #define SQL_API_SQLFREEHANDLE 1006
294 #endif
295 #define SQL_API_SQLFREESTMT 16
296 #if (ODBCVER >= 0x0300)
297 #define SQL_API_SQLGETCONNECTATTR 1007
298 #endif
299 #define SQL_API_SQLGETCONNECTOPTION 42
300 #define SQL_API_SQLGETCURSORNAME 17
301 #define SQL_API_SQLGETDATA 43
302 #if (ODBCVER >= 0x0300)
303 #define SQL_API_SQLGETDESCFIELD 1008
304 #define SQL_API_SQLGETDESCREC 1009
305 #define SQL_API_SQLGETDIAGFIELD 1010
306 #define SQL_API_SQLGETDIAGREC 1011
307 #define SQL_API_SQLGETENVATTR 1012
308 #endif
309 #define SQL_API_SQLGETFUNCTIONS 44
310 #define SQL_API_SQLGETINFO 45
311 #if (ODBCVER >= 0x0300)
312 #define SQL_API_SQLGETSTMTATTR 1014
313 #endif
314 #define SQL_API_SQLGETSTMTOPTION 46
315 #define SQL_API_SQLGETTYPEINFO 47
316 #define SQL_API_SQLNUMRESULTCOLS 18
317 #define SQL_API_SQLPARAMDATA 48
318 #define SQL_API_SQLPREPARE 19
319 #define SQL_API_SQLPUTDATA 49
320 #define SQL_API_SQLROWCOUNT 20
321 #if (ODBCVER >= 0x0300)
322 #define SQL_API_SQLSETCONNECTATTR 1016
323 #endif
324 #define SQL_API_SQLSETCONNECTOPTION 50
325 #define SQL_API_SQLSETCURSORNAME 21
326 #if (ODBCVER >= 0x0300)
327 #define SQL_API_SQLSETDESCFIELD 1017
328 #define SQL_API_SQLSETDESCREC 1018
329 #define SQL_API_SQLSETENVATTR 1019
330 #endif
331 #define SQL_API_SQLSETPARAM 22
332 #if (ODBCVER >= 0x0300)
333 #define SQL_API_SQLSETSTMTATTR 1020
334 #endif
335 #define SQL_API_SQLSETSTMTOPTION 51
336 #define SQL_API_SQLSPECIALCOLUMNS 52
337 #define SQL_API_SQLSTATISTICS 53
338 #define SQL_API_SQLTABLES 54
339 #define SQL_API_SQLTRANSACT 23
340 
341 #if (ODBCVER >= 0x0300)
342 #define SQL_MAX_DRIVER_CONNECTIONS 0
343 #define SQL_MAXIMUM_DRIVER_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
344 #define SQL_MAX_CONCURRENT_ACTIVITIES 1
345 #define SQL_MAXIMUM_CONCURRENT_ACTIVITIES SQL_MAX_CONCURRENT_ACTIVITIES
346 #endif
347 #define SQL_DATA_SOURCE_NAME 2
348 #define SQL_FETCH_DIRECTION 8
349 #define SQL_SERVER_NAME 13
350 #define SQL_SEARCH_PATTERN_ESCAPE 14
351 #define SQL_DBMS_NAME 17
352 #define SQL_DBMS_VER 18
353 #define SQL_ACCESSIBLE_TABLES 19
354 #define SQL_ACCESSIBLE_PROCEDURES 20
355 #define SQL_CURSOR_COMMIT_BEHAVIOR 23
356 #define SQL_DATA_SOURCE_READ_ONLY 25
357 #define SQL_DEFAULT_TXN_ISOLATION 26
358 #define SQL_IDENTIFIER_CASE 28
359 #define SQL_IDENTIFIER_QUOTE_CHAR 29
360 #define SQL_MAX_COLUMN_NAME_LEN 30
361 #define SQL_MAXIMUM_COLUMN_NAME_LENGTH SQL_MAX_COLUMN_NAME_LEN
362 #define SQL_MAX_CURSOR_NAME_LEN 31
363 #define SQL_MAXIMUM_CURSOR_NAME_LENGTH SQL_MAX_CURSOR_NAME_LEN
364 #define SQL_MAX_SCHEMA_NAME_LEN 32
365 #define SQL_MAXIMUM_SCHEMA_NAME_LENGTH SQL_MAX_SCHEMA_NAME_LEN
366 #define SQL_MAX_CATALOG_NAME_LEN 34
367 #define SQL_MAXIMUM_CATALOG_NAME_LENGTH SQL_MAX_CATALOG_NAME_LEN
368 #define SQL_MAX_TABLE_NAME_LEN 35
369 #define SQL_SCROLL_CONCURRENCY 43
370 #define SQL_TXN_CAPABLE 46
371 #define SQL_TRANSACTION_CAPABLE SQL_TXN_CAPABLE
372 #define SQL_USER_NAME 47
373 #define SQL_TXN_ISOLATION_OPTION 72
374 #define SQL_TRANSACTION_ISOLATION_OPTION SQL_TXN_ISOLATION_OPTION
375 #define SQL_INTEGRITY 73
376 #define SQL_GETDATA_EXTENSIONS 81
377 #define SQL_NULL_COLLATION 85
378 #define SQL_ALTER_TABLE 86
379 #define SQL_ORDER_BY_COLUMNS_IN_SELECT 90
380 #define SQL_SPECIAL_CHARACTERS 94
381 #define SQL_MAX_COLUMNS_IN_GROUP_BY 97
382 #define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY SQL_MAX_COLUMNS_IN_GROUP_BY
383 #define SQL_MAX_COLUMNS_IN_INDEX 98
384 #define SQL_MAXIMUM_COLUMNS_IN_INDEX SQL_MAX_COLUMNS_IN_INDEX
385 #define SQL_MAX_COLUMNS_IN_ORDER_BY 99
386 #define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY SQL_MAX_COLUMNS_IN_ORDER_BY
387 #define SQL_MAX_COLUMNS_IN_SELECT 100
388 #define SQL_MAXIMUM_COLUMNS_IN_SELECT SQL_MAX_COLUMNS_IN_SELECT
389 #define SQL_MAX_COLUMNS_IN_TABLE 101
390 #define SQL_MAX_INDEX_SIZE 102
391 #define SQL_MAXIMUM_INDEX_SIZE SQL_MAX_INDEX_SIZE
392 #define SQL_MAX_ROW_SIZE 104
393 #define SQL_MAXIMUM_ROW_SIZE SQL_MAX_ROW_SIZE
394 #define SQL_MAX_STATEMENT_LEN 105
395 #define SQL_MAXIMUM_STATEMENT_LENGTH SQL_MAX_STATEMENT_LEN
396 #define SQL_MAX_TABLES_IN_SELECT 106
397 #define SQL_MAXIMUM_TABLES_IN_SELECT SQL_MAX_TABLES_IN_SELECT
398 #define SQL_MAX_USER_NAME_LEN 107
399 #define SQL_MAXIMUM_USER_NAME_LENGTH SQL_MAX_USER_NAME_LEN
400 #if (ODBCVER >= 0x0300)
401 #define SQL_OJ_CAPABILITIES 115
402 #define SQL_OUTER_JOIN_CAPABILITIES SQL_OJ_CAPABILITIES
403 #endif
404 
405 #if (ODBCVER >= 0x0300)
406 #define SQL_XOPEN_CLI_YEAR 10000
407 #define SQL_CURSOR_SENSITIVITY 10001
408 #define SQL_DESCRIBE_PARAMETER 10002
409 #define SQL_CATALOG_NAME 10003
410 #define SQL_COLLATION_SEQ 10004
411 #define SQL_MAX_IDENTIFIER_LEN 10005
412 #define SQL_MAXIMUM_IDENTIFIER_LENGTH SQL_MAX_IDENTIFIER_LEN
413 #endif
414 
415 #if (ODBCVER >= 0x0200)
416 #define SQL_AT_ADD_COLUMN __MSABI_LONG(0x00000001)
417 #define SQL_AT_DROP_COLUMN __MSABI_LONG(0x00000002)
418 #endif
419 
420 #if (ODBCVER >= 0x0300)
421 #define SQL_AT_ADD_CONSTRAINT __MSABI_LONG(0x00000008)
422 #endif
423 
424 #if (ODBCVER >= 0x0300)
425 #define SQL_AM_NONE 0
426 #define SQL_AM_CONNECTION 1
427 #define SQL_AM_STATEMENT 2
428 #endif
429 
430 #define SQL_CB_DELETE 0
431 #define SQL_CB_CLOSE 1
432 #define SQL_CB_PRESERVE 2
433 
434 #define SQL_FD_FETCH_NEXT __MSABI_LONG(0x00000001)
435 #define SQL_FD_FETCH_FIRST __MSABI_LONG(0x00000002)
436 #define SQL_FD_FETCH_LAST __MSABI_LONG(0x00000004)
437 #define SQL_FD_FETCH_PRIOR __MSABI_LONG(0x00000008)
438 #define SQL_FD_FETCH_ABSOLUTE __MSABI_LONG(0x00000010)
439 #define SQL_FD_FETCH_RELATIVE __MSABI_LONG(0x00000020)
440 
441 #define SQL_GD_ANY_COLUMN __MSABI_LONG(0x00000001)
442 #define SQL_GD_ANY_ORDER __MSABI_LONG(0x00000002)
443 
444 #define SQL_IC_UPPER 1
445 #define SQL_IC_LOWER 2
446 #define SQL_IC_SENSITIVE 3
447 #define SQL_IC_MIXED 4
448 
449 #if (ODBCVER >= 0x0201)
450 #define SQL_OJ_LEFT __MSABI_LONG(0x00000001)
451 #define SQL_OJ_RIGHT __MSABI_LONG(0x00000002)
452 #define SQL_OJ_FULL __MSABI_LONG(0x00000004)
453 #define SQL_OJ_NESTED __MSABI_LONG(0x00000008)
454 #define SQL_OJ_NOT_ORDERED __MSABI_LONG(0x00000010)
455 #define SQL_OJ_INNER __MSABI_LONG(0x00000020)
456 #define SQL_OJ_ALL_COMPARISON_OPS __MSABI_LONG(0x00000040)
457 #endif
458 
459 #define SQL_SCCO_READ_ONLY __MSABI_LONG(0x00000001)
460 #define SQL_SCCO_LOCK __MSABI_LONG(0x00000002)
461 #define SQL_SCCO_OPT_ROWVER __MSABI_LONG(0x00000004)
462 #define SQL_SCCO_OPT_VALUES __MSABI_LONG(0x00000008)
463 
464 #define SQL_TC_NONE 0
465 #define SQL_TC_DML 1
466 #define SQL_TC_ALL 2
467 #define SQL_TC_DDL_COMMIT 3
468 #define SQL_TC_DDL_IGNORE 4
469 
470 #define SQL_TXN_READ_UNCOMMITTED __MSABI_LONG(0x00000001)
471 #define SQL_TRANSACTION_READ_UNCOMMITTED SQL_TXN_READ_UNCOMMITTED
472 #define SQL_TXN_READ_COMMITTED __MSABI_LONG(0x00000002)
473 #define SQL_TRANSACTION_READ_COMMITTED SQL_TXN_READ_COMMITTED
474 #define SQL_TXN_REPEATABLE_READ __MSABI_LONG(0x00000004)
475 #define SQL_TRANSACTION_REPEATABLE_READ SQL_TXN_REPEATABLE_READ
476 #define SQL_TXN_SERIALIZABLE __MSABI_LONG(0x00000008)
477 #define SQL_TRANSACTION_SERIALIZABLE SQL_TXN_SERIALIZABLE
478 
479 #define SQL_NC_HIGH 0
480 #define SQL_NC_LOW 1
481 
482 #ifndef RC_INVOKED
483   SQLRETURN SQL_API SQLAllocConnect(SQLHENV EnvironmentHandle,SQLHDBC *ConnectionHandle);
484   SQLRETURN SQL_API SQLAllocEnv(SQLHENV *EnvironmentHandle);
485 #if (ODBCVER >= 0x0300)
486   SQLRETURN SQL_API SQLAllocHandle(SQLSMALLINT HandleType,SQLHANDLE InputHandle,SQLHANDLE *OutputHandle);
487 #endif
488   SQLRETURN SQL_API SQLAllocStmt(SQLHDBC ConnectionHandle,SQLHSTMT *StatementHandle);
489   SQLRETURN SQL_API SQLBindCol(SQLHSTMT StatementHandle,SQLUSMALLINT ColumnNumber,SQLSMALLINT TargetType,SQLPOINTER TargetValue,SQLLEN BufferLength,SQLLEN *StrLen_or_Ind);
490 #if (ODBCVER >= 0x0300)
491   SQLRETURN SQL_API SQLBindParam(SQLHSTMT StatementHandle,SQLUSMALLINT ParameterNumber,SQLSMALLINT ValueType,SQLSMALLINT ParameterType,SQLULEN LengthPrecision,SQLSMALLINT ParameterScale,SQLPOINTER ParameterValue,SQLLEN *StrLen_or_Ind);
492 #endif
493   SQLRETURN SQL_API SQLCancel(SQLHSTMT StatementHandle);
494 #if (ODBCVER >= 0x0300)
495   SQLRETURN SQL_API SQLCloseCursor(SQLHSTMT StatementHandle);
496 #ifdef _WIN64
497   SQLRETURN SQL_API SQLColAttribute(SQLHSTMT StatementHandle,SQLUSMALLINT ColumnNumber,SQLUSMALLINT FieldIdentifier,SQLPOINTER CharacterAttribute,SQLSMALLINT BufferLength,SQLSMALLINT *StringLength,SQLLEN *NumericAttribute);
498 #else
499   SQLRETURN SQL_API SQLColAttribute(SQLHSTMT StatementHandle,SQLUSMALLINT ColumnNumber,SQLUSMALLINT FieldIdentifier,SQLPOINTER CharacterAttribute,SQLSMALLINT BufferLength,SQLSMALLINT *StringLength,SQLPOINTER NumericAttribute);
500 #endif
501 #endif
502   SQLRETURN SQL_API SQLColumns(SQLHSTMT StatementHandle,SQLCHAR *CatalogName,SQLSMALLINT NameLength1,SQLCHAR *SchemaName,SQLSMALLINT NameLength2,SQLCHAR *TableName,SQLSMALLINT NameLength3,SQLCHAR *ColumnName,SQLSMALLINT NameLength4);
503   SQLRETURN SQL_API SQLConnect(SQLHDBC ConnectionHandle,SQLCHAR *ServerName,SQLSMALLINT NameLength1,SQLCHAR *UserName,SQLSMALLINT NameLength2,SQLCHAR *Authentication,SQLSMALLINT NameLength3);
504 #if (ODBCVER >= 0x0300)
505   SQLRETURN SQL_API SQLCopyDesc(SQLHDESC SourceDescHandle,SQLHDESC TargetDescHandle);
506 #endif
507   SQLRETURN SQL_API SQLDataSources(SQLHENV EnvironmentHandle,SQLUSMALLINT Direction,SQLCHAR *ServerName,SQLSMALLINT BufferLength1,SQLSMALLINT *NameLength1,SQLCHAR *Description,SQLSMALLINT BufferLength2,SQLSMALLINT *NameLength2);
508   SQLRETURN SQL_API SQLDescribeCol(SQLHSTMT StatementHandle,SQLUSMALLINT ColumnNumber,SQLCHAR *ColumnName,SQLSMALLINT BufferLength,SQLSMALLINT *NameLength,SQLSMALLINT *DataType,SQLULEN *ColumnSize,SQLSMALLINT *DecimalDigits,SQLSMALLINT *Nullable);
509   SQLRETURN SQL_API SQLDisconnect(SQLHDBC ConnectionHandle);
510 #if (ODBCVER >= 0x0300)
511   SQLRETURN SQL_API SQLEndTran(SQLSMALLINT HandleType,SQLHANDLE Handle,SQLSMALLINT CompletionType);
512 #endif
513   SQLRETURN SQL_API SQLError(SQLHENV EnvironmentHandle,SQLHDBC ConnectionHandle,SQLHSTMT StatementHandle,SQLCHAR *Sqlstate,SQLINTEGER *NativeError,SQLCHAR *MessageText,SQLSMALLINT BufferLength,SQLSMALLINT *TextLength);
514   SQLRETURN SQL_API SQLExecDirect(SQLHSTMT StatementHandle,SQLCHAR *StatementText,SQLINTEGER TextLength);
515   SQLRETURN SQL_API SQLExecute(SQLHSTMT StatementHandle);
516   SQLRETURN SQL_API SQLFetch(SQLHSTMT StatementHandle);
517 #if (ODBCVER >= 0x0300)
518   SQLRETURN SQL_API SQLFetchScroll(SQLHSTMT StatementHandle,SQLSMALLINT FetchOrientation,SQLLEN FetchOffset);
519 #endif
520   SQLRETURN SQL_API SQLFreeConnect(SQLHDBC ConnectionHandle);
521   SQLRETURN SQL_API SQLFreeEnv(SQLHENV EnvironmentHandle);
522 #if (ODBCVER >= 0x0300)
523   SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT HandleType,SQLHANDLE Handle);
524 #endif
525   SQLRETURN SQL_API SQLFreeStmt(SQLHSTMT StatementHandle,SQLUSMALLINT Option);
526 #if (ODBCVER >= 0x0300)
527   SQLRETURN SQL_API SQLGetConnectAttr(SQLHDBC ConnectionHandle,SQLINTEGER Attribute,SQLPOINTER Value,SQLINTEGER BufferLength,SQLINTEGER *StringLength);
528 #endif
529   SQLRETURN SQL_API SQLGetConnectOption(SQLHDBC ConnectionHandle,SQLUSMALLINT Option,SQLPOINTER Value);
530   SQLRETURN SQL_API SQLGetCursorName(SQLHSTMT StatementHandle,SQLCHAR *CursorName,SQLSMALLINT BufferLength,SQLSMALLINT *NameLength);
531   SQLRETURN SQL_API SQLGetData(SQLHSTMT StatementHandle,SQLUSMALLINT ColumnNumber,SQLSMALLINT TargetType,SQLPOINTER TargetValue,SQLLEN BufferLength,SQLLEN *StrLen_or_Ind);
532 #if (ODBCVER >= 0x0300)
533   SQLRETURN SQL_API SQLGetDescField(SQLHDESC DescriptorHandle,SQLSMALLINT RecNumber,SQLSMALLINT FieldIdentifier,SQLPOINTER Value,SQLINTEGER BufferLength,SQLINTEGER *StringLength);
534   SQLRETURN SQL_API SQLGetDescRec(SQLHDESC DescriptorHandle,SQLSMALLINT RecNumber,SQLCHAR *Name,SQLSMALLINT BufferLength,SQLSMALLINT *StringLength,SQLSMALLINT *Type,SQLSMALLINT *SubType,SQLLEN *Length,SQLSMALLINT *Precision,SQLSMALLINT *Scale,SQLSMALLINT *Nullable);
535   SQLRETURN SQL_API SQLGetDiagField(SQLSMALLINT HandleType,SQLHANDLE Handle,SQLSMALLINT RecNumber,SQLSMALLINT DiagIdentifier,SQLPOINTER DiagInfo,SQLSMALLINT BufferLength,SQLSMALLINT *StringLength);
536   SQLRETURN SQL_API SQLGetDiagRec(SQLSMALLINT HandleType,SQLHANDLE Handle,SQLSMALLINT RecNumber,SQLCHAR *Sqlstate,SQLINTEGER *NativeError,SQLCHAR *MessageText,SQLSMALLINT BufferLength,SQLSMALLINT *TextLength);
537   SQLRETURN SQL_API SQLGetEnvAttr(SQLHENV EnvironmentHandle,SQLINTEGER Attribute,SQLPOINTER Value,SQLINTEGER BufferLength,SQLINTEGER *StringLength);
538 #endif
539   SQLRETURN SQL_API SQLGetFunctions(SQLHDBC ConnectionHandle,SQLUSMALLINT FunctionId,SQLUSMALLINT *Supported);
540   SQLRETURN SQL_API SQLGetInfo(SQLHDBC ConnectionHandle,SQLUSMALLINT InfoType,SQLPOINTER InfoValue,SQLSMALLINT BufferLength,SQLSMALLINT *StringLength);
541 #if (ODBCVER >= 0x0300)
542   SQLRETURN SQL_API SQLGetStmtAttr(SQLHSTMT StatementHandle,SQLINTEGER Attribute,SQLPOINTER Value,SQLINTEGER BufferLength,SQLINTEGER *StringLength);
543 #endif
544   SQLRETURN SQL_API SQLGetStmtOption(SQLHSTMT StatementHandle,SQLUSMALLINT Option,SQLPOINTER Value);
545   SQLRETURN SQL_API SQLGetTypeInfo(SQLHSTMT StatementHandle,SQLSMALLINT DataType);
546   SQLRETURN SQL_API SQLNumResultCols(SQLHSTMT StatementHandle,SQLSMALLINT *ColumnCount);
547   SQLRETURN SQL_API SQLParamData(SQLHSTMT StatementHandle,SQLPOINTER *Value);
548   SQLRETURN SQL_API SQLPrepare(SQLHSTMT StatementHandle,SQLCHAR *StatementText,SQLINTEGER TextLength);
549   SQLRETURN SQL_API SQLPutData(SQLHSTMT StatementHandle,SQLPOINTER Data,SQLLEN StrLen_or_Ind);
550   SQLRETURN SQL_API SQLRowCount(SQLHSTMT StatementHandle,SQLLEN *RowCount);
551 #if (ODBCVER >= 0x0300)
552   SQLRETURN SQL_API SQLSetConnectAttr(SQLHDBC ConnectionHandle,SQLINTEGER Attribute,SQLPOINTER Value,SQLINTEGER StringLength);
553 #endif
554   SQLRETURN SQL_API SQLSetConnectOption(SQLHDBC ConnectionHandle,SQLUSMALLINT Option,SQLULEN Value);
555   SQLRETURN SQL_API SQLSetCursorName(SQLHSTMT StatementHandle,SQLCHAR *CursorName,SQLSMALLINT NameLength);
556 #if (ODBCVER >= 0x0300)
557   SQLRETURN SQL_API SQLSetDescField(SQLHDESC DescriptorHandle,SQLSMALLINT RecNumber,SQLSMALLINT FieldIdentifier,SQLPOINTER Value,SQLINTEGER BufferLength);
558   SQLRETURN SQL_API SQLSetDescRec(SQLHDESC DescriptorHandle,SQLSMALLINT RecNumber,SQLSMALLINT Type,SQLSMALLINT SubType,SQLLEN Length,SQLSMALLINT Precision,SQLSMALLINT Scale,SQLPOINTER Data,SQLLEN *StringLength,SQLLEN *Indicator);
559   SQLRETURN SQL_API SQLSetEnvAttr(SQLHENV EnvironmentHandle,SQLINTEGER Attribute,SQLPOINTER Value,SQLINTEGER StringLength);
560 #endif
561   SQLRETURN SQL_API SQLSetParam(SQLHSTMT StatementHandle,SQLUSMALLINT ParameterNumber,SQLSMALLINT ValueType,SQLSMALLINT ParameterType,SQLULEN LengthPrecision,SQLSMALLINT ParameterScale,SQLPOINTER ParameterValue,SQLLEN *StrLen_or_Ind);
562 #if (ODBCVER >= 0x0300)
563   SQLRETURN SQL_API SQLSetStmtAttr(SQLHSTMT StatementHandle,SQLINTEGER Attribute,SQLPOINTER Value,SQLINTEGER StringLength);
564 #endif
565   SQLRETURN SQL_API SQLSetStmtOption(SQLHSTMT StatementHandle,SQLUSMALLINT Option,SQLULEN Value);
566   SQLRETURN SQL_API SQLSpecialColumns(SQLHSTMT StatementHandle,SQLUSMALLINT IdentifierType,SQLCHAR *CatalogName,SQLSMALLINT NameLength1,SQLCHAR *SchemaName,SQLSMALLINT NameLength2,SQLCHAR *TableName,SQLSMALLINT NameLength3,SQLUSMALLINT Scope,SQLUSMALLINT Nullable);
567   SQLRETURN SQL_API SQLStatistics(SQLHSTMT StatementHandle,SQLCHAR *CatalogName,SQLSMALLINT NameLength1,SQLCHAR *SchemaName,SQLSMALLINT NameLength2,SQLCHAR *TableName,SQLSMALLINT NameLength3,SQLUSMALLINT Unique,SQLUSMALLINT Reserved);
568   SQLRETURN SQL_API SQLTables(SQLHSTMT StatementHandle,SQLCHAR *CatalogName,SQLSMALLINT NameLength1,SQLCHAR *SchemaName,SQLSMALLINT NameLength2,SQLCHAR *TableName,SQLSMALLINT NameLength3,SQLCHAR *TableType,SQLSMALLINT NameLength4);
569   SQLRETURN SQL_API SQLTransact(SQLHENV EnvironmentHandle,SQLHDBC ConnectionHandle,SQLUSMALLINT CompletionType);
570 #endif
571 
572 #ifdef __cplusplus
573 }
574 #endif
575 #endif
576