4 * Copyright (C) 1999 Xiang Li
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 #define ODBCVER 0x0351
34 #define SQL_NULL_DATA (-1)
35 #define SQL_DATA_AT_EXEC (-2)
37 #define SQL_SUCCESS_WITH_INFO 1
38 #if (ODBCVER >= 0x0300)
39 #define SQL_NO_DATA 100
41 #define SQL_ERROR (-1)
42 #define SQL_INVALID_HANDLE (-2)
43 #define SQL_STILL_EXECUTING 2
44 #define SQL_NEED_DATA 99
45 #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
48 #define SQL_NTSL (-3L)
50 #define SQL_MAX_MESSAGE_LENGTH 512
52 #if (ODBCVER >= 0x0300)
53 #define SQL_DATE_LEN 10
54 #define SQL_TIME_LEN 8
55 #define SQL_TIMESTAMP_LEN 19
58 #if (ODBCVER >= 0x0300)
59 #define SQL_HANDLE_ENV 1
60 #define SQL_HANDLE_DBC 2
61 #define SQL_HANDLE_STMT 3
62 #define SQL_HANDLE_DESC 4
65 #if (ODBCVER >= 0x0300)
66 #define SQL_ATTR_OUTPUT_NTS 10001
69 #if (ODBCVER >= 0x0300)
70 #define SQL_ATTR_AUTO_IPD 10001
71 #define SQL_ATTR_METADATA_ID 10014
74 #if (ODBCVER >= 0x0300)
75 #define SQL_ATTR_APP_ROW_DESC 10010
76 #define SQL_ATTR_APP_PARAM_DESC 10011
77 #define SQL_ATTR_IMP_ROW_DESC 10012
78 #define SQL_ATTR_IMP_PARAM_DESC 10013
79 #define SQL_ATTR_CURSOR_SCROLLABLE (-1)
80 #define SQL_ATTR_CURSOR_SENSITIVITY (-2)
83 #if (ODBCVER >= 0x0300)
84 #define SQL_NONSCROLLABLE 0
85 #define SQL_SCROLLABLE 1
88 #if (ODBCVER >= 0x0300)
89 #define SQL_DESC_COUNT 1001
90 #define SQL_DESC_TYPE 1002
91 #define SQL_DESC_LENGTH 1003
92 #define SQL_DESC_OCTET_LENGTH_PTR 1004
93 #define SQL_DESC_PRECISION 1005
94 #define SQL_DESC_SCALE 1006
95 #define SQL_DESC_DATETIME_INTERVAL_CODE 1007
96 #define SQL_DESC_NULLABLE 1008
97 #define SQL_DESC_INDICATOR_PTR 1009
98 #define SQL_DESC_DATA_PTR 1010
99 #define SQL_DESC_NAME 1011
100 #define SQL_DESC_UNNAMED 1012
101 #define SQL_DESC_OCTET_LENGTH 1013
102 #define SQL_DESC_ALLOC_TYPE 1099
105 #if (ODBCVER >= 0x0300)
106 #define SQL_DIAG_RETURNCODE 1
107 #define SQL_DIAG_NUMBER 2
108 #define SQL_DIAG_ROW_COUNT 3
109 #define SQL_DIAG_SQLSTATE 4
110 #define SQL_DIAG_NATIVE 5
111 #define SQL_DIAG_MESSAGE_TEXT 6
112 #define SQL_DIAG_DYNAMIC_FUNCTION 7
113 #define SQL_DIAG_CLASS_ORIGIN 8
114 #define SQL_DIAG_SUBCLASS_ORIGIN 9
115 #define SQL_DIAG_CONNECTION_NAME 10
116 #define SQL_DIAG_SERVER_NAME 11
117 #define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12
120 #if (ODBCVER >= 0x0300)
121 #define SQL_DIAG_ALTER_DOMAIN 3
122 #define SQL_DIAG_ALTER_TABLE 4
123 #define SQL_DIAG_CALL 7
124 #define SQL_DIAG_CREATE_ASSERTION 6
125 #define SQL_DIAG_CREATE_CHARACTER_SET 8
126 #define SQL_DIAG_CREATE_COLLATION 10
127 #define SQL_DIAG_CREATE_DOMAIN 23
128 #define SQL_DIAG_CREATE_INDEX (-1)
129 #define SQL_DIAG_CREATE_SCHEMA 64
130 #define SQL_DIAG_CREATE_TABLE 77
131 #define SQL_DIAG_CREATE_TRANSLATION 79
132 #define SQL_DIAG_CREATE_VIEW 84
133 #define SQL_DIAG_DELETE_WHERE 19
134 #define SQL_DIAG_DROP_ASSERTION 24
135 #define SQL_DIAG_DROP_CHARACTER_SET 25
136 #define SQL_DIAG_DROP_COLLATION 26
137 #define SQL_DIAG_DROP_DOMAIN 27
138 #define SQL_DIAG_DROP_INDEX (-2)
139 #define SQL_DIAG_DROP_SCHEMA 31
140 #define SQL_DIAG_DROP_TABLE 32
141 #define SQL_DIAG_DROP_TRANSLATION 33
142 #define SQL_DIAG_DROP_VIEW 36
143 #define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38
144 #define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81
145 #define SQL_DIAG_GRANT 48
146 #define SQL_DIAG_INSERT 50
147 #define SQL_DIAG_REVOKE 59
148 #define SQL_DIAG_SELECT_CURSOR 85
149 #define SQL_DIAG_UNKNOWN_STATEMENT 0
150 #define SQL_DIAG_UPDATE_WHERE 82
153 #define SQL_UNKNOWN_TYPE 0
155 #define SQL_NUMERIC 2
156 #define SQL_DECIMAL 3
157 #define SQL_INTEGER 4
158 #define SQL_SMALLINT 5
162 #if (ODBCVER >= 0x0300)
163 #define SQL_DATETIME 9
165 #define SQL_VARCHAR 12
167 #if (ODBCVER >= 0x0300)
168 #define SQL_TYPE_DATE 91
169 #define SQL_TYPE_TIME 92
170 #define SQL_TYPE_TIMESTAMP 93
173 #if (ODBCVER >= 0x0300)
174 #define SQL_UNSPECIFIED 0
175 #define SQL_INSENSITIVE 1
176 #define SQL_SENSITIVE 2
179 #define SQL_ALL_TYPES 0
181 #if (ODBCVER >= 0x0300)
182 #define SQL_DEFAULT 99
185 #if (ODBCVER >= 0x0300)
186 #define SQL_ARD_TYPE (-99)
189 #if (ODBCVER >= 0x0300)
190 #define SQL_CODE_DATE 1
191 #define SQL_CODE_TIME 2
192 #define SQL_CODE_TIMESTAMP 3
195 #if (ODBCVER >= 0x0300)
200 #define SQL_NO_NULLS 0
201 #define SQL_NULLABLE 1
203 #define SQL_NULLABLE_UNKNOWN 2
205 #if (ODBCVER >= 0x0300)
206 #define SQL_PRED_NONE 0
207 #define SQL_PRED_CHAR 1
208 #define SQL_PRED_BASIC 2
211 #if (ODBCVER >= 0x0300)
213 #define SQL_UNNAMED 1
216 #if (ODBCVER >= 0x0300)
217 #define SQL_DESC_ALLOC_AUTO 1
218 #define SQL_DESC_ALLOC_USER 2
224 #define SQL_RESET_PARAMS 3
225 #define SQL_FETCH_NEXT 1
226 #define SQL_FETCH_FIRST 2
227 #define SQL_FETCH_LAST 3
228 #define SQL_FETCH_PRIOR 4
229 #define SQL_FETCH_ABSOLUTE 5
230 #define SQL_FETCH_RELATIVE 6
233 #define SQL_ROLLBACK 1
235 #define SQL_NULL_HENV 0
236 #define SQL_NULL_HDBC 0
237 #define SQL_NULL_HSTMT 0
238 #if (ODBCVER >= 0x0300)
239 #define SQL_NULL_HDESC 0
242 #if (ODBCVER >= 0x0300)
243 #define SQL_NULL_HANDLE 0L
246 #define SQL_SCOPE_CURROW 0
247 #define SQL_SCOPE_TRANSACTION 1
248 #define SQL_SCOPE_SESSION 2
250 #define SQL_PC_UNKNOWN 0
251 #if (ODBCVER >= 0x0300)
252 #define SQL_PC_NON_PSEUDO 1
254 #define SQL_PC_PSEUDO 2
256 #if (ODBCVER >= 0x0300)
257 #define SQL_ROW_IDENTIFIER 1
260 #define SQL_INDEX_UNIQUE 0
261 #define SQL_INDEX_ALL 1
263 #define SQL_INDEX_CLUSTERED 1
264 #define SQL_INDEX_HASHED 2
265 #define SQL_INDEX_OTHER 3
267 #define SQL_API_SQLALLOCCONNECT 1
268 #define SQL_API_SQLALLOCENV 2
269 #if (ODBCVER >= 0x0300)
270 #define SQL_API_SQLALLOCHANDLE 1001
272 #define SQL_API_SQLALLOCSTMT 3
273 #define SQL_API_SQLBINDCOL 4
274 #if (ODBCVER >= 0x0300)
275 #define SQL_API_SQLBINDPARAM 1002
277 #define SQL_API_SQLCANCEL 5
278 #if (ODBCVER >= 0x0300)
279 #define SQL_API_SQLCLOSECURSOR 1003
280 #define SQL_API_SQLCOLATTRIBUTE 6
282 #define SQL_API_SQLCOLUMNS 40
283 #define SQL_API_SQLCONNECT 7
284 #if (ODBCVER >= 0x0300)
285 #define SQL_API_SQLCOPYDESC 1004
287 #define SQL_API_SQLDATASOURCES 57
288 #define SQL_API_SQLDESCRIBECOL 8
289 #define SQL_API_SQLDISCONNECT 9
290 #if (ODBCVER >= 0x0300)
291 #define SQL_API_SQLENDTRAN 1005
293 #define SQL_API_SQLERROR 10
294 #define SQL_API_SQLEXECDIRECT 11
295 #define SQL_API_SQLEXECUTE 12
296 #define SQL_API_SQLFETCH 13
297 #if (ODBCVER >= 0x0300)
298 #define SQL_API_SQLFETCHSCROLL 1021
300 #define SQL_API_SQLFREECONNECT 14
301 #define SQL_API_SQLFREEENV 15
302 #if (ODBCVER >= 0x0300)
303 #define SQL_API_SQLFREEHANDLE 1006
305 #define SQL_API_SQLFREESTMT 16
306 #if (ODBCVER >= 0x0300)
307 #define SQL_API_SQLGETCONNECTATTR 1007
309 #define SQL_API_SQLGETCONNECTOPTION 42
310 #define SQL_API_SQLGETCURSORNAME 17
311 #define SQL_API_SQLGETDATA 43
312 #if (ODBCVER >= 0x0300)
313 #define SQL_API_SQLGETDESCFIELD 1008
314 #define SQL_API_SQLGETDESCREC 1009
315 #define SQL_API_SQLGETDIAGFIELD 1010
316 #define SQL_API_SQLGETDIAGREC 1011
317 #define SQL_API_SQLGETENVATTR 1012
319 #define SQL_API_SQLGETFUNCTIONS 44
320 #define SQL_API_SQLGETINFO 45
321 #if (ODBCVER >= 0x0300)
322 #define SQL_API_SQLGETSTMTATTR 1014
324 #define SQL_API_SQLGETSTMTOPTION 46
325 #define SQL_API_SQLGETTYPEINFO 47
326 #define SQL_API_SQLNUMRESULTCOLS 18
327 #define SQL_API_SQLPARAMDATA 48
328 #define SQL_API_SQLPREPARE 19
329 #define SQL_API_SQLPUTDATA 49
330 #define SQL_API_SQLROWCOUNT 20
331 #if (ODBCVER >= 0x0300)
332 #define SQL_API_SQLSETCONNECTATTR 1016
334 #define SQL_API_SQLSETCONNECTOPTION 50
335 #define SQL_API_SQLSETCURSORNAME 21
336 #if (ODBCVER >= 0x0300)
337 #define SQL_API_SQLSETDESCFIELD 1017
338 #define SQL_API_SQLSETDESCREC 1018
339 #define SQL_API_SQLSETENVATTR 1019
341 #define SQL_API_SQLSETPARAM 22
342 #if (ODBCVER >= 0x0300)
343 #define SQL_API_SQLSETSTMTATTR 1020
345 #define SQL_API_SQLSETSTMTOPTION 51
346 #define SQL_API_SQLSPECIALCOLUMNS 52
347 #define SQL_API_SQLSTATISTICS 53
348 #define SQL_API_SQLTABLES 54
349 #define SQL_API_SQLTRANSACT 23
351 #if (ODBCVER >= 0x0300)
352 #define SQL_MAX_DRIVER_CONNECTIONS 0
353 #define SQL_MAXIMUM_DRIVER_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
354 #define SQL_MAX_CONCURRENT_ACTIVITIES 1
355 #define SQL_MAXIMUM_CONCURRENT_ACTIVITIES SQL_MAX_CONCURRENT_ACTIVITIES
357 #define SQL_DATA_SOURCE_NAME 2
358 #define SQL_FETCH_DIRECTION 8
359 #define SQL_SERVER_NAME 13
360 #define SQL_SEARCH_PATTERN_ESCAPE 14
361 #define SQL_DBMS_NAME 17
362 #define SQL_DBMS_VER 18
363 #define SQL_ACCESSIBLE_TABLES 19
364 #define SQL_ACCESSIBLE_PROCEDURES 20
365 #define SQL_CURSOR_COMMIT_BEHAVIOR 23
366 #define SQL_DATA_SOURCE_READ_ONLY 25
367 #define SQL_DEFAULT_TXN_ISOLATION 26
368 #define SQL_IDENTIFIER_CASE 28
369 #define SQL_IDENTIFIER_QUOTE_CHAR 29
370 #define SQL_MAX_COLUMN_NAME_LEN 30
371 #define SQL_MAXIMUM_COLUMN_NAME_LENGTH SQL_MAX_COLUMN_NAME_LEN
372 #define SQL_MAX_CURSOR_NAME_LEN 31
373 #define SQL_MAXIMUM_CURSOR_NAME_LENGTH SQL_MAX_CURSOR_NAME_LEN
374 #define SQL_MAX_SCHEMA_NAME_LEN 32
375 #define SQL_MAXIMUM_SCHEMA_NAME_LENGTH SQL_MAX_SCHEMA_NAME_LEN
376 #define SQL_MAX_CATALOG_NAME_LEN 34
377 #define SQL_MAXIMUM_CATALOG_NAME_LENGTH SQL_MAX_CATALOG_NAME_LEN
378 #define SQL_MAX_TABLE_NAME_LEN 35
379 #define SQL_SCROLL_CONCURRENCY 43
380 #define SQL_TXN_CAPABLE 46
381 #define SQL_TRANSACTION_CAPABLE SQL_TXN_CAPABLE
382 #define SQL_USER_NAME 47
383 #define SQL_TXN_ISOLATION_OPTION 72
384 #define SQL_TRANSACTION_ISOLATION_OPTION SQL_TXN_ISOLATION_OPTION
385 #define SQL_INTEGRITY 73
386 #define SQL_GETDATA_EXTENSIONS 81
387 #define SQL_NULL_COLLATION 85
388 #define SQL_ALTER_TABLE 86
389 #define SQL_ORDER_BY_COLUMNS_IN_SELECT 90
390 #define SQL_SPECIAL_CHARACTERS 94
391 #define SQL_MAX_COLUMNS_IN_GROUP_BY 97
392 #define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY SQL_MAX_COLUMNS_IN_GROUP_BY
393 #define SQL_MAX_COLUMNS_IN_INDEX 98
394 #define SQL_MAXIMUM_COLUMNS_IN_INDEX SQL_MAX_COLUMNS_IN_INDEX
395 #define SQL_MAX_COLUMNS_IN_ORDER_BY 99
396 #define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY SQL_MAX_COLUMNS_IN_ORDER_BY
397 #define SQL_MAX_COLUMNS_IN_SELECT 100
398 #define SQL_MAXIMUM_COLUMNS_IN_SELECT SQL_MAX_COLUMNS_IN_SELECT
399 #define SQL_MAX_COLUMNS_IN_TABLE 101
400 #define SQL_MAX_INDEX_SIZE 102
401 #define SQL_MAXIMUM_INDEX_SIZE SQL_MAX_INDEX_SIZE
402 #define SQL_MAX_ROW_SIZE 104
403 #define SQL_MAXIMUM_ROW_SIZE SQL_MAX_ROW_SIZE
404 #define SQL_MAX_STATEMENT_LEN 105
405 #define SQL_MAXIMUM_STATEMENT_LENGTH SQL_MAX_STATEMENT_LEN
406 #define SQL_MAX_TABLES_IN_SELECT 106
407 #define SQL_MAXIMUM_TABLES_IN_SELECT SQL_MAX_TABLES_IN_SELECT
408 #define SQL_MAX_USER_NAME_LEN 107
409 #define SQL_MAXIMUM_USER_NAME_LENGTH SQL_MAX_USER_NAME_LEN
410 #if (ODBCVER >= 0x0300)
411 #define SQL_OJ_CAPABILITIES 115
412 #define SQL_OUTER_JOIN_CAPABILITIES SQL_OJ_CAPABILITIES
415 #if (ODBCVER >= 0x0300)
416 #define SQL_XOPEN_CLI_YEAR 10000
417 #define SQL_CURSOR_SENSITIVITY 10001
418 #define SQL_DESCRIBE_PARAMETER 10002
419 #define SQL_CATALOG_NAME 10003
420 #define SQL_COLLATION_SEQ 10004
421 #define SQL_MAX_IDENTIFIER_LEN 10005
422 #define SQL_MAXIMUM_IDENTIFIER_LENGTH SQL_MAX_IDENTIFIER_LEN
425 #if (ODBCVER >= 0x0200)
426 #define SQL_AT_ADD_COLUMN 0x00000001L
427 #define SQL_AT_DROP_COLUMN 0x00000002L
430 #if (ODBCVER >= 0x0300)
431 #define SQL_AT_ADD_CONSTRAINT 0x00000008L
433 #endif /* ODBCVER >= 0x0300 */
436 #if (ODBCVER >= 0x0300)
437 #define SQL_AM_NONE 0
438 #define SQL_AM_CONNECTION 1
439 #define SQL_AM_STATEMENT 2
442 #define SQL_CB_DELETE 0
443 #define SQL_CB_CLOSE 1
444 #define SQL_CB_PRESERVE 2
446 #define SQL_FD_FETCH_NEXT 0x00000001L
447 #define SQL_FD_FETCH_FIRST 0x00000002L
448 #define SQL_FD_FETCH_LAST 0x00000004L
449 #define SQL_FD_FETCH_PRIOR 0x00000008L
450 #define SQL_FD_FETCH_ABSOLUTE 0x00000010L
451 #define SQL_FD_FETCH_RELATIVE 0x00000020L
453 #define SQL_GD_ANY_COLUMN 0x00000001L
454 #define SQL_GD_ANY_ORDER 0x00000002L
456 #define SQL_IC_UPPER 1
457 #define SQL_IC_LOWER 2
458 #define SQL_IC_SENSITIVE 3
459 #define SQL_IC_MIXED 4
461 #if (ODBCVER >= 0x0201)
462 #define SQL_OJ_LEFT 0x00000001L
463 #define SQL_OJ_RIGHT 0x00000002L
464 #define SQL_OJ_FULL 0x00000004L
465 #define SQL_OJ_NESTED 0x00000008L
466 #define SQL_OJ_NOT_ORDERED 0x00000010L
467 #define SQL_OJ_INNER 0x00000020L
468 #define SQL_OJ_ALL_COMPARISON_OPS 0x00000040L
471 #define SQL_SCCO_READ_ONLY 0x00000001L
472 #define SQL_SCCO_LOCK 0x00000002L
473 #define SQL_SCCO_OPT_ROWVER 0x00000004L
474 #define SQL_SCCO_OPT_VALUES 0x00000008L
476 #define SQL_TC_NONE 0
479 #define SQL_TC_DDL_COMMIT 3
480 #define SQL_TC_DDL_IGNORE 4
482 #define SQL_TXN_READ_UNCOMMITTED 0x00000001L
483 #define SQL_TRANSACTION_READ_UNCOMMITTED SQL_TXN_READ_UNCOMMITTED
484 #define SQL_TXN_READ_COMMITTED 0x00000002L
485 #define SQL_TRANSACTION_READ_COMMITTED SQL_TXN_READ_COMMITTED
486 #define SQL_TXN_REPEATABLE_READ 0x00000004L
487 #define SQL_TRANSACTION_REPEATABLE_READ SQL_TXN_REPEATABLE_READ
488 #define SQL_TXN_SERIALIZABLE 0x00000008L
489 #define SQL_TRANSACTION_SERIALIZABLE SQL_TXN_SERIALIZABLE
491 #define SQL_NC_HIGH 0
494 SQLRETURN WINAPI
SQLAllocConnect(SQLHENV EnvironmentHandle
,
495 SQLHDBC
*ConnectionHandle
);
497 SQLRETURN WINAPI
SQLAllocEnv(SQLHENV
*EnvironmentHandle
);
499 #if (ODBCVER >= 0x0300)
500 SQLRETURN WINAPI
SQLAllocHandle(SQLSMALLINT HandleType
,
501 SQLHANDLE InputHandle
, SQLHANDLE
*OutputHandle
);
504 SQLRETURN WINAPI
SQLAllocStmt(SQLHDBC ConnectionHandle
,
505 SQLHSTMT
*StatementHandle
);
507 SQLRETURN WINAPI
SQLBindCol(SQLHSTMT StatementHandle
,
508 SQLUSMALLINT ColumnNumber
, SQLSMALLINT TargetType
,
509 SQLPOINTER TargetValue
, SQLINTEGER BufferLength
,
510 SQLINTEGER
*StrLen_or_Ind
);
512 #if (ODBCVER >= 0x0300)
513 SQLRETURN WINAPI
SQLBindParam(SQLHSTMT StatementHandle
,
514 SQLUSMALLINT ParameterNumber
, SQLSMALLINT ValueType
,
515 SQLSMALLINT ParameterType
, SQLUINTEGER LengthPrecision
,
516 SQLSMALLINT ParameterScale
, SQLPOINTER ParameterValue
,
517 SQLINTEGER
*StrLen_or_Ind
);
520 SQLRETURN WINAPI
SQLCancel(SQLHSTMT StatementHandle
);
522 #if (ODBCVER >= 0x0300)
523 SQLRETURN WINAPI
SQLCloseCursor(SQLHSTMT StatementHandle
);
525 SQLRETURN WINAPI
SQLColAttribute (SQLHSTMT StatementHandle
,
526 SQLUSMALLINT ColumnNumber
, SQLUSMALLINT FieldIdentifier
,
527 SQLPOINTER CharacterAttribute
, SQLSMALLINT BufferLength
,
528 SQLSMALLINT
*StringLength
, SQLPOINTER NumericAttribute
);
532 SQLRETURN WINAPI
SQLColumns(SQLHSTMT StatementHandle
,
533 SQLCHAR
*CatalogName
, SQLSMALLINT NameLength1
,
534 SQLCHAR
*SchemaName
, SQLSMALLINT NameLength2
,
535 SQLCHAR
*TableName
, SQLSMALLINT NameLength3
,
536 SQLCHAR
*ColumnName
, SQLSMALLINT NameLength4
);
539 SQLRETURN WINAPI
SQLConnect(SQLHDBC ConnectionHandle
,
540 SQLCHAR
*ServerName
, SQLSMALLINT NameLength1
,
541 SQLCHAR
*UserName
, SQLSMALLINT NameLength2
,
542 SQLCHAR
*Authentication
, SQLSMALLINT NameLength3
);
544 #if (ODBCVER >= 0x0300)
545 SQLRETURN WINAPI
SQLCopyDesc(SQLHDESC SourceDescHandle
,
546 SQLHDESC TargetDescHandle
);
549 SQLRETURN WINAPI
SQLDataSources(SQLHENV EnvironmentHandle
,
550 SQLUSMALLINT Direction
, SQLCHAR
*ServerName
,
551 SQLSMALLINT BufferLength1
, SQLSMALLINT
*NameLength1
,
552 SQLCHAR
*Description
, SQLSMALLINT BufferLength2
,
553 SQLSMALLINT
*NameLength2
);
555 SQLRETURN WINAPI
SQLDescribeCol(SQLHSTMT StatementHandle
,
556 SQLUSMALLINT ColumnNumber
, SQLCHAR
*ColumnName
,
557 SQLSMALLINT BufferLength
, SQLSMALLINT
*NameLength
,
558 SQLSMALLINT
*DataType
, SQLUINTEGER
*ColumnSize
,
559 SQLSMALLINT
*DecimalDigits
, SQLSMALLINT
*Nullable
);
561 SQLRETURN WINAPI
SQLDisconnect(SQLHDBC ConnectionHandle
);
563 #if (ODBCVER >= 0x0300)
564 SQLRETURN WINAPI
SQLEndTran(SQLSMALLINT HandleType
, SQLHANDLE Handle
,
565 SQLSMALLINT CompletionType
);
568 SQLRETURN WINAPI
SQLError(SQLHENV EnvironmentHandle
,
569 SQLHDBC ConnectionHandle
, SQLHSTMT StatementHandle
,
570 SQLCHAR
*Sqlstate
, SQLINTEGER
*NativeError
,
571 SQLCHAR
*MessageText
, SQLSMALLINT BufferLength
,
572 SQLSMALLINT
*TextLength
);
574 SQLRETURN WINAPI
SQLExecDirect(SQLHSTMT StatementHandle
,
575 SQLCHAR
*StatementText
, SQLINTEGER TextLength
);
577 SQLRETURN WINAPI
SQLExecute(SQLHSTMT StatementHandle
);
579 SQLRETURN WINAPI
SQLFetch(SQLHSTMT StatementHandle
);
581 #if (ODBCVER >= 0x0300)
582 SQLRETURN WINAPI
SQLFetchScroll(SQLHSTMT StatementHandle
,
583 SQLSMALLINT FetchOrientation
, SQLINTEGER FetchOffset
);
586 SQLRETURN WINAPI
SQLFreeConnect(SQLHDBC ConnectionHandle
);
588 SQLRETURN WINAPI
SQLFreeEnv(SQLHENV EnvironmentHandle
);
590 #if (ODBCVER >= 0x0300)
591 SQLRETURN WINAPI
SQLFreeHandle(SQLSMALLINT HandleType
, SQLHANDLE Handle
);
594 SQLRETURN WINAPI
SQLFreeStmt(SQLHSTMT StatementHandle
,
595 SQLUSMALLINT Option
);
597 #if (ODBCVER >= 0x0300)
598 SQLRETURN WINAPI
SQLGetConnectAttr(SQLHDBC ConnectionHandle
,
599 SQLINTEGER Attribute
, SQLPOINTER Value
,
600 SQLINTEGER BufferLength
, SQLINTEGER
*StringLength
);
603 SQLRETURN WINAPI
SQLGetConnectOption(SQLHDBC ConnectionHandle
,
604 SQLUSMALLINT Option
, SQLPOINTER Value
);
606 SQLRETURN WINAPI
SQLGetCursorName(SQLHSTMT StatementHandle
,
607 SQLCHAR
*CursorName
, SQLSMALLINT BufferLength
,
608 SQLSMALLINT
*NameLength
);
610 SQLRETURN WINAPI
SQLGetData(SQLHSTMT StatementHandle
,
611 SQLUSMALLINT ColumnNumber
, SQLSMALLINT TargetType
,
612 SQLPOINTER TargetValue
, SQLINTEGER BufferLength
,
613 SQLINTEGER
*StrLen_or_Ind
);
615 #if (ODBCVER >= 0x0300)
616 SQLRETURN WINAPI
SQLGetDescField(SQLHDESC DescriptorHandle
,
617 SQLSMALLINT RecNumber
, SQLSMALLINT FieldIdentifier
,
618 SQLPOINTER Value
, SQLINTEGER BufferLength
,
619 SQLINTEGER
*StringLength
);
621 SQLRETURN WINAPI
SQLGetDescRec(SQLHDESC DescriptorHandle
,
622 SQLSMALLINT RecNumber
, SQLCHAR
*Name
,
623 SQLSMALLINT BufferLength
, SQLSMALLINT
*StringLength
,
624 SQLSMALLINT
*Type
, SQLSMALLINT
*SubType
,
625 SQLINTEGER
*Length
, SQLSMALLINT
*Precision
,
626 SQLSMALLINT
*Scale
, SQLSMALLINT
*Nullable
);
628 SQLRETURN WINAPI
SQLGetDiagField(SQLSMALLINT HandleType
, SQLHANDLE Handle
,
629 SQLSMALLINT RecNumber
, SQLSMALLINT DiagIdentifier
,
630 SQLPOINTER DiagInfo
, SQLSMALLINT BufferLength
,
631 SQLSMALLINT
*StringLength
);
633 SQLRETURN WINAPI
SQLGetDiagRec(SQLSMALLINT HandleType
, SQLHANDLE Handle
,
634 SQLSMALLINT RecNumber
, SQLCHAR
*Sqlstate
,
635 SQLINTEGER
*NativeError
, SQLCHAR
*MessageText
,
636 SQLSMALLINT BufferLength
, SQLSMALLINT
*TextLength
);
638 SQLRETURN WINAPI
SQLGetEnvAttr(SQLHENV EnvironmentHandle
,
639 SQLINTEGER Attribute
, SQLPOINTER Value
,
640 SQLINTEGER BufferLength
, SQLINTEGER
*StringLength
);
643 SQLRETURN WINAPI
SQLGetFunctions(SQLHDBC ConnectionHandle
,
644 SQLUSMALLINT FunctionId
, SQLUSMALLINT
*Supported
);
646 SQLRETURN WINAPI
SQLGetInfo(SQLHDBC ConnectionHandle
,
647 SQLUSMALLINT InfoType
, SQLPOINTER InfoValue
,
648 SQLSMALLINT BufferLength
, SQLSMALLINT
*StringLength
);
650 #if (ODBCVER >= 0x0300)
651 SQLRETURN WINAPI
SQLGetStmtAttr(SQLHSTMT StatementHandle
,
652 SQLINTEGER Attribute
, SQLPOINTER Value
,
653 SQLINTEGER BufferLength
, SQLINTEGER
*StringLength
);
656 SQLRETURN WINAPI
SQLGetStmtOption(SQLHSTMT StatementHandle
,
657 SQLUSMALLINT Option
, SQLPOINTER Value
);
659 SQLRETURN WINAPI
SQLGetTypeInfo(SQLHSTMT StatementHandle
,
660 SQLSMALLINT DataType
);
662 SQLRETURN WINAPI
SQLNumResultCols(SQLHSTMT StatementHandle
,
663 SQLSMALLINT
*ColumnCount
);
665 SQLRETURN WINAPI
SQLParamData(SQLHSTMT StatementHandle
,
668 SQLRETURN WINAPI
SQLPrepare(SQLHSTMT StatementHandle
,
669 SQLCHAR
*StatementText
, SQLINTEGER TextLength
);
671 SQLRETURN WINAPI
SQLPutData(SQLHSTMT StatementHandle
,
672 SQLPOINTER Data
, SQLINTEGER StrLen_or_Ind
);
674 SQLRETURN WINAPI
SQLRowCount(SQLHSTMT StatementHandle
,
675 SQLINTEGER
*RowCount
);
677 #if (ODBCVER >= 0x0300)
678 SQLRETURN WINAPI
SQLSetConnectAttr(SQLHDBC ConnectionHandle
,
679 SQLINTEGER Attribute
, SQLPOINTER Value
,
680 SQLINTEGER StringLength
);
683 SQLRETURN WINAPI
SQLSetConnectOption(SQLHDBC ConnectionHandle
,
684 SQLUSMALLINT Option
, SQLUINTEGER Value
);
686 SQLRETURN WINAPI
SQLSetCursorName(SQLHSTMT StatementHandle
,
687 SQLCHAR
*CursorName
, SQLSMALLINT NameLength
);
689 #if (ODBCVER >= 0x0300)
690 SQLRETURN WINAPI
SQLSetDescField(SQLHDESC DescriptorHandle
,
691 SQLSMALLINT RecNumber
, SQLSMALLINT FieldIdentifier
,
692 SQLPOINTER Value
, SQLINTEGER BufferLength
);
694 SQLRETURN WINAPI
SQLSetDescRec(SQLHDESC DescriptorHandle
,
695 SQLSMALLINT RecNumber
, SQLSMALLINT Type
,
696 SQLSMALLINT SubType
, SQLINTEGER Length
,
697 SQLSMALLINT Precision
, SQLSMALLINT Scale
,
698 SQLPOINTER Data
, SQLINTEGER
*StringLength
,
699 SQLINTEGER
*Indicator
);
701 SQLRETURN WINAPI
SQLSetEnvAttr(SQLHENV EnvironmentHandle
,
702 SQLINTEGER Attribute
, SQLPOINTER Value
,
703 SQLINTEGER StringLength
);
706 SQLRETURN WINAPI
SQLSetParam(SQLHSTMT StatementHandle
,
707 SQLUSMALLINT ParameterNumber
, SQLSMALLINT ValueType
,
708 SQLSMALLINT ParameterType
, SQLUINTEGER LengthPrecision
,
709 SQLSMALLINT ParameterScale
, SQLPOINTER ParameterValue
,
710 SQLINTEGER
*StrLen_or_Ind
);
712 #if (ODBCVER >= 0x0300)
713 SQLRETURN WINAPI
SQLSetStmtAttr(SQLHSTMT StatementHandle
,
714 SQLINTEGER Attribute
, SQLPOINTER Value
,
715 SQLINTEGER StringLength
);
718 SQLRETURN WINAPI
SQLSetStmtOption(SQLHSTMT StatementHandle
,
719 SQLUSMALLINT Option
, SQLUINTEGER Value
);
721 SQLRETURN WINAPI
SQLSpecialColumns(SQLHSTMT StatementHandle
,
722 SQLUSMALLINT IdentifierType
, SQLCHAR
*CatalogName
,
723 SQLSMALLINT NameLength1
, SQLCHAR
*SchemaName
,
724 SQLSMALLINT NameLength2
, SQLCHAR
*TableName
,
725 SQLSMALLINT NameLength3
, SQLUSMALLINT Scope
,
726 SQLUSMALLINT Nullable
);
728 SQLRETURN WINAPI
SQLStatistics(SQLHSTMT StatementHandle
,
729 SQLCHAR
*CatalogName
, SQLSMALLINT NameLength1
,
730 SQLCHAR
*SchemaName
, SQLSMALLINT NameLength2
,
731 SQLCHAR
*TableName
, SQLSMALLINT NameLength3
,
732 SQLUSMALLINT Unique
, SQLUSMALLINT Reserved
);
734 SQLRETURN WINAPI
SQLTables(SQLHSTMT StatementHandle
,
735 SQLCHAR
*CatalogName
, SQLSMALLINT NameLength1
,
736 SQLCHAR
*SchemaName
, SQLSMALLINT NameLength2
,
737 SQLCHAR
*TableName
, SQLSMALLINT NameLength3
,
738 SQLCHAR
*TableType
, SQLSMALLINT NameLength4
);
740 SQLRETURN WINAPI
SQLTransact(SQLHENV EnvironmentHandle
,
741 SQLHDBC ConnectionHandle
, SQLUSMALLINT CompletionType
);