sql.h (cdf0e10c) sql.h (24201887)
1/**************************************************
2 * sql.h
1/*
2 * sql.h
3 *
3 *
4 * These should be consistent with the MS version.
4 * $Id: sql.h,v 1.9 2006/01/20 15:58:34 source Exp $
5 *
5 *
6 **************************************************/
7#ifndef __SQL_H
8#define __SQL_H
6 * ODBC defines
7 *
8 * The iODBC driver manager.
9 *
10 * Copyright (C) 1995 by Ke Jin <kejin@empress.com>
11 * Copyright (C) 1996-2006 by OpenLink Software <iodbc@openlinksw.com>
12 * All Rights Reserved.
13 *
14 * This software is released under the terms of either of the following
15 * licenses:
16 *
17 * - GNU Library General Public License (see LICENSE.LGPL)
18 * - The BSD License (see LICENSE.BSD).
19 *
20 * Note that the only valid version of the LGPL license as far as this
21 * project is concerned is the original GNU Library General Public License
22 * Version 2, dated June 1991.
23 *
24 * While not mandated by the BSD license, any patches you make to the
25 * iODBC source code may be contributed back into the iODBC project
26 * at your discretion. Contributions will benefit the Open Source and
27 * Data Access community as a whole. Submissions may be made at:
28 *
29 * http://www.iodbc.org
30 *
31 *
32 * GNU Library Generic Public License Version 2
33 * ============================================
34 * This library is free software; you can redistribute it and/or
35 * modify it under the terms of the GNU Library General Public
36 * License as published by the Free Software Foundation; only
37 * Version 2 of the License dated June 1991.
38 *
39 * This library is distributed in the hope that it will be useful,
40 * but WITHOUT ANY WARRANTY; without even the implied warranty of
41 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
42 * Library General Public License for more details.
43 *
44 * You should have received a copy of the GNU Library General Public
45 * License along with this library; if not, write to the Free
46 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
47 *
48 *
49 * The BSD License
50 * ===============
51 * Redistribution and use in source and binary forms, with or without
52 * modification, are permitted provided that the following conditions
53 * are met:
54 *
55 * 1. Redistributions of source code must retain the above copyright
56 * notice, this list of conditions and the following disclaimer.
57 * 2. Redistributions in binary form must reproduce the above copyright
58 * notice, this list of conditions and the following disclaimer in
59 * the documentation and/or other materials provided with the
60 * distribution.
61 * 3. Neither the name of OpenLink Software Inc. nor the names of its
62 * contributors may be used to endorse or promote products derived
63 * from this software without specific prior written permission.
64 *
65 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
66 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
67 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
68 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
69 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
70 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
71 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
72 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
73 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
74 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
75 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
76 */
9
77
78#ifndef _SQL_H
79#define _SQL_H
10
80
11/****************************
12 * default to 3.51 declare something else before here and you get a whole new ball of wax
13 ***************************/
81/*
82 * Set default specification to ODBC 3.51
83 */
14#ifndef ODBCVER
84#ifndef ODBCVER
15#define ODBCVER 0x0351
85#define ODBCVER 0x0351
16#endif
17
86#endif
87
18#ifndef __SQLTYPES_H
19#include "odbc/sqltypes.h"
88/*
89 * Include Windows style defines and typedefs on Unix
90 */
91#ifndef _IODBCUNIX_H
92#include <odbc/iodbcunix.h>
20#endif
21
93#endif
94
95#ifndef _SQLTYPES_H
96#include <odbc/sqltypes.h>
97#endif
98
22#ifdef __cplusplus
23extern "C" {
24#endif
25
99#ifdef __cplusplus
100extern "C" {
101#endif
102
26/****************************
27 * some ret values
28 ***************************/
29#define SQL_NULL_DATA (-1)
30#define SQL_DATA_AT_EXEC (-2)
31#define SQL_SUCCESS 0
32#define SQL_SUCCESS_WITH_INFO 1
33#if (ODBCVER >= 0x0300)
34#define SQL_NO_DATA 100
35#endif
36#define SQL_ERROR (-1)
37#define SQL_INVALID_HANDLE (-2)
38#define SQL_STILL_EXECUTING 2
39#define SQL_NEED_DATA 99
40#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
103/*
104 * Useful Constants
105 */
106#define SQL_MAX_MESSAGE_LENGTH 512
41
107
42/****************************
43 * use these to indicate string termination to some function
44 ***************************/
45#define SQL_NTS (-3)
46#define SQL_NTSL (-3L)
47
108
48/* maximum message length */
49#define SQL_MAX_MESSAGE_LENGTH 512
50
51/* date/time length constants */
109/*
110 * Handle types
111 */
52#if (ODBCVER >= 0x0300)
112#if (ODBCVER >= 0x0300)
53#define SQL_DATE_LEN 10
54#define SQL_TIME_LEN 8 /* add P+1 if precision is nonzero */
55#define SQL_TIMESTAMP_LEN 19 /* add P+1 if precision is nonzero */
56#endif
113#define SQL_HANDLE_ENV 1
114#define SQL_HANDLE_DBC 2
115#define SQL_HANDLE_STMT 3
116#define SQL_HANDLE_DESC 4
117#endif /* ODBCVER >= 0x0300 */
57
118
58/* handle type identifiers */
59#if (ODBCVER >= 0x0300)
60#define SQL_HANDLE_ENV 1
61#define SQL_HANDLE_DBC 2
62#define SQL_HANDLE_STMT 3
63#define SQL_HANDLE_DESC 4
64#endif
65
119
66/* environment attribute */
120/*
121 * Function return codes
122 */
123#define SQL_SUCCESS 0
124#define SQL_SUCCESS_WITH_INFO 1
125#define SQL_STILL_EXECUTING 2
126#define SQL_ERROR (-1)
127#define SQL_INVALID_HANDLE (-2)
128#define SQL_NEED_DATA 99
67#if (ODBCVER >= 0x0300)
129#if (ODBCVER >= 0x0300)
68#define SQL_ATTR_OUTPUT_NTS 10001
69#endif
130#define SQL_NO_DATA 100
131#endif /* ODBCVER >= 0x0300 */
70
132
71/* connection attributes */
72#if (ODBCVER >= 0x0300)
73#define SQL_ATTR_AUTO_IPD 10001
74#define SQL_ATTR_METADATA_ID 10014
75#endif /* ODBCVER >= 0x0300 */
76
133
77/* statement attributes */
78#if (ODBCVER >= 0x0300)
79#define SQL_ATTR_APP_ROW_DESC 10010
80#define SQL_ATTR_APP_PARAM_DESC 10011
81#define SQL_ATTR_IMP_ROW_DESC 10012
82#define SQL_ATTR_IMP_PARAM_DESC 10013
83#define SQL_ATTR_CURSOR_SCROLLABLE (-1)
84#define SQL_ATTR_CURSOR_SENSITIVITY (-2)
85#endif
134/*
135 * Test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO
136 */
137#define SQL_SUCCEEDED(rc) (((rc) & (~1)) == 0)
86
138
87/* SQL_ATTR_CURSOR_SCROLLABLE values */
88#if (ODBCVER >= 0x0300)
89#define SQL_NONSCROLLABLE 0
90#define SQL_SCROLLABLE 1
91#endif /* ODBCVER >= 0x0300 */
92
139
93/* identifiers of fields in the SQL descriptor */
94#if (ODBCVER >= 0x0300)
95#define SQL_DESC_COUNT 1001
96#define SQL_DESC_TYPE 1002
97#define SQL_DESC_LENGTH 1003
98#define SQL_DESC_OCTET_LENGTH_PTR 1004
99#define SQL_DESC_PRECISION 1005
100#define SQL_DESC_SCALE 1006
101#define SQL_DESC_DATETIME_INTERVAL_CODE 1007
102#define SQL_DESC_NULLABLE 1008
103#define SQL_DESC_INDICATOR_PTR 1009
104#define SQL_DESC_DATA_PTR 1010
105#define SQL_DESC_NAME 1011
106#define SQL_DESC_UNNAMED 1012
107#define SQL_DESC_OCTET_LENGTH 1013
108#define SQL_DESC_ALLOC_TYPE 1099
109#endif
140/*
141 * Special length values
142 */
143#define SQL_NULL_DATA (-1)
144#define SQL_DATA_AT_EXEC (-2)
110
145
111/* identifiers of fields in the diagnostics area */
112#if (ODBCVER >= 0x0300)
113#define SQL_DIAG_RETURNCODE 1
114#define SQL_DIAG_NUMBER 2
115#define SQL_DIAG_ROW_COUNT 3
116#define SQL_DIAG_SQLSTATE 4
117#define SQL_DIAG_NATIVE 5
118#define SQL_DIAG_MESSAGE_TEXT 6
119#define SQL_DIAG_DYNAMIC_FUNCTION 7
120#define SQL_DIAG_CLASS_ORIGIN 8
121#define SQL_DIAG_SUBCLASS_ORIGIN 9
122#define SQL_DIAG_CONNECTION_NAME 10
123#define SQL_DIAG_SERVER_NAME 11
124#define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12
125#endif
126
146
127/* dynamic function codes */
128#if (ODBCVER >= 0x0300)
129#define SQL_DIAG_ALTER_DOMAIN 3
130#define SQL_DIAG_ALTER_TABLE 4
131#define SQL_DIAG_CALL 7
132#define SQL_DIAG_CREATE_ASSERTION 6
133#define SQL_DIAG_CREATE_CHARACTER_SET 8
134#define SQL_DIAG_CREATE_COLLATION 10
135#define SQL_DIAG_CREATE_DOMAIN 23
136#define SQL_DIAG_CREATE_INDEX (-1)
137#define SQL_DIAG_CREATE_SCHEMA 64
138#define SQL_DIAG_CREATE_TABLE 77
139#define SQL_DIAG_CREATE_TRANSLATION 79
140#define SQL_DIAG_CREATE_VIEW 84
141#define SQL_DIAG_DELETE_WHERE 19
142#define SQL_DIAG_DROP_ASSERTION 24
143#define SQL_DIAG_DROP_CHARACTER_SET 25
144#define SQL_DIAG_DROP_COLLATION 26
145#define SQL_DIAG_DROP_DOMAIN 27
146#define SQL_DIAG_DROP_INDEX (-2)
147#define SQL_DIAG_DROP_SCHEMA 31
148#define SQL_DIAG_DROP_TABLE 32
149#define SQL_DIAG_DROP_TRANSLATION 33
150#define SQL_DIAG_DROP_VIEW 36
151#define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38
152#define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81
153#define SQL_DIAG_GRANT 48
154#define SQL_DIAG_INSERT 50
155#define SQL_DIAG_REVOKE 59
156#define SQL_DIAG_SELECT_CURSOR 85
157#define SQL_DIAG_UNKNOWN_STATEMENT 0
158#define SQL_DIAG_UPDATE_WHERE 82
159#endif /* ODBCVER >= 0x0300 */
147/*
148 * Flags for null-terminated strings
149 */
150#define SQL_NTS (-3)
151#define SQL_NTSL (-3L)
160
152
161/* SQL data type codes */
162#define SQL_UNKNOWN_TYPE 0
163#define SQL_CHAR 1
164#define SQL_NUMERIC 2
165#define SQL_DECIMAL 3
166#define SQL_INTEGER 4
167#define SQL_SMALLINT 5
168#define SQL_FLOAT 6
169#define SQL_REAL 7
170#define SQL_DOUBLE 8
153
154/*
155 * Standard SQL datatypes, using ANSI type numbering
156 */
157#define SQL_UNKNOWN_TYPE 0
158#define SQL_CHAR 1
159#define SQL_NUMERIC 2
160#define SQL_DECIMAL 3
161#define SQL_INTEGER 4
162#define SQL_SMALLINT 5
163#define SQL_FLOAT 6
164#define SQL_REAL 7
165#define SQL_DOUBLE 8
171#if (ODBCVER >= 0x0300)
166#if (ODBCVER >= 0x0300)
172#define SQL_DATETIME 9
173#endif
174#define SQL_VARCHAR 12
167#define SQL_DATETIME 9
168#endif /* ODBCVER >= 0x0300 */
169#define SQL_VARCHAR 12
175
170
176/* One-parameter shortcuts for date/time data types */
171
172/*
173 * SQLGetTypeInfo request for all data types
174 */
175#define SQL_ALL_TYPES 0
176
177
178/*
179 * Statement attribute values for date/time data types
180 */
177#if (ODBCVER >= 0x0300)
181#if (ODBCVER >= 0x0300)
178#define SQL_TYPE_DATE 91
179#define SQL_TYPE_TIME 92
180#define SQL_TYPE_TIMESTAMP 93
181#endif
182#define SQL_TYPE_DATE 91
183#define SQL_TYPE_TIME 92
184#define SQL_TYPE_TIMESTAMP 93
185#endif /* ODBCVER >= 0x0300 */
182
186
183/* Statement attribute values for cursor sensitivity */
187
188/*
189 * Date/Time length constants
190 */
184#if (ODBCVER >= 0x0300)
191#if (ODBCVER >= 0x0300)
185#define SQL_UNSPECIFIED 0
186#define SQL_INSENSITIVE 1
187#define SQL_SENSITIVE 2
188#endif
192#define SQL_DATE_LEN 10
193#define SQL_TIME_LEN 8 /* add P+1 if prec >0 */
194#define SQL_TIMESTAMP_LEN 19 /* add P+1 if prec >0 */
195#endif /* ODBCVER >= 0x0300 */
189
196
190/* GetTypeInfo() request for all data types */
191#define SQL_ALL_TYPES 0
192
197
193/* Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData() */
198/*
199 * NULL status constants
200 */
201#define SQL_NO_NULLS 0
202#define SQL_NULLABLE 1
203#define SQL_NULLABLE_UNKNOWN 2
204
205
206/*
207 * NULL Handles
208 */
209#define SQL_NULL_HENV 0
210#define SQL_NULL_HDBC 0
211#define SQL_NULL_HSTMT 0
194#if (ODBCVER >= 0x0300)
212#if (ODBCVER >= 0x0300)
195#define SQL_DEFAULT 99
196#endif
213#define SQL_NULL_HDESC 0
214#endif /* ODBCVER >= 0x0300 */
197
215
198/* SQLGetData() code indicating that the application row descriptor
199 * specifies the data type
216
217/*
218 * NULL handle for parent argument to SQLAllocHandle when allocating
219 * a SQLHENV
200 */
201#if (ODBCVER >= 0x0300)
220 */
221#if (ODBCVER >= 0x0300)
202#define SQL_ARD_TYPE (-99)
203#endif
222#define SQL_NULL_HANDLE 0L
223#endif /* ODBCVER >= 0x0300 */
204
224
205/* SQL date/time type subcodes */
225
226/*
227 * CLI option values
228 */
206#if (ODBCVER >= 0x0300)
229#if (ODBCVER >= 0x0300)
207#define SQL_CODE_DATE 1
208#define SQL_CODE_TIME 2
209#define SQL_CODE_TIMESTAMP 3
210#endif
230#define SQL_FALSE 0
231#define SQL_TRUE 1
232#endif /* ODBCVER >= 0x0300 */
211
233
212/* CLI option values */
234
235/*
236 * Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData()
237 */
213#if (ODBCVER >= 0x0300)
238#if (ODBCVER >= 0x0300)
214#define SQL_FALSE 0
215#define SQL_TRUE 1
216#endif
239#define SQL_DEFAULT 99
240#endif /* ODBCVER >= 0x0300 */
217
241
218/* values of NULLABLE field in descriptor */
219#define SQL_NO_NULLS 0
220#define SQL_NULLABLE 1
221
242
222/* Value returned by SQLGetTypeInfo() to denote that it is
223 * not known whether or not a data type supports null values.
243/*
244 * SQLDataSources/SQLFetchScroll - FetchOrientation
224 */
245 */
225#define SQL_NULLABLE_UNKNOWN 2
246#define SQL_FETCH_NEXT 1
247#define SQL_FETCH_FIRST 2
226
248
227/* Values returned by SQLGetTypeInfo() to show WHERE clause
228 * supported
249
250/*
251 * SQLFetchScroll - FetchOrientation
229 */
252 */
230#if (ODBCVER >= 0x0300)
231#define SQL_PRED_NONE 0
232#define SQL_PRED_CHAR 1
233#define SQL_PRED_BASIC 2
234#endif
253#define SQL_FETCH_LAST 3
254#define SQL_FETCH_PRIOR 4
255#define SQL_FETCH_ABSOLUTE 5
256#define SQL_FETCH_RELATIVE 6
235
257
236/* values of UNNAMED field in descriptor */
258
259/*
260 * SQLFreeStmt
261 */
262#define SQL_CLOSE 0
263#define SQL_DROP 1
264#define SQL_UNBIND 2
265#define SQL_RESET_PARAMS 3
266
267
268/*
269 * SQLGetConnectAttr - connection attributes
270 */
237#if (ODBCVER >= 0x0300)
271#if (ODBCVER >= 0x0300)
238#define SQL_NAMED 0
239#define SQL_UNNAMED 1
240#endif
272#define SQL_ATTR_AUTO_IPD 10001
273#define SQL_ATTR_METADATA_ID 10014
274#endif /* ODBCVER >= 0x0300 */
241
275
242/* values of ALLOC_TYPE field in descriptor */
276
277/*
278 * SQLGetData() code indicating that the application row descriptor
279 * specifies the data type
280 */
243#if (ODBCVER >= 0x0300)
281#if (ODBCVER >= 0x0300)
244#define SQL_DESC_ALLOC_AUTO 1
245#define SQL_DESC_ALLOC_USER 2
246#endif
282#define SQL_ARD_TYPE (-99)
283#endif /* ODBCVER >= 0x0300 */
247
284
248/* FreeStmt() options */
249#define SQL_CLOSE 0
250#define SQL_DROP 1
251#define SQL_UNBIND 2
252#define SQL_RESET_PARAMS 3
253
285
254/* Codes used for FetchOrientation in SQLFetchScroll(),
255 and in SQLDataSources()
256*/
257#define SQL_FETCH_NEXT 1
258#define SQL_FETCH_FIRST 2
286/*
287 * SQLGetDescField - identifiers of fields in the SQL descriptor
288 */
289#if (ODBCVER >= 0x0300)
290#define SQL_DESC_COUNT 1001
291#define SQL_DESC_TYPE 1002
292#define SQL_DESC_LENGTH 1003
293#define SQL_DESC_OCTET_LENGTH_PTR 1004
294#define SQL_DESC_PRECISION 1005
295#define SQL_DESC_SCALE 1006
296#define SQL_DESC_DATETIME_INTERVAL_CODE 1007
297#define SQL_DESC_NULLABLE 1008
298#define SQL_DESC_INDICATOR_PTR 1009
299#define SQL_DESC_DATA_PTR 1010
300#define SQL_DESC_NAME 1011
301#define SQL_DESC_UNNAMED 1012
302#define SQL_DESC_OCTET_LENGTH 1013
303#define SQL_DESC_ALLOC_TYPE 1099
304#endif /* ODBCVER >= 0x0300 */
259
305
260/* Other codes used for FetchOrientation in SQLFetchScroll() */
261#define SQL_FETCH_LAST 3
262#define SQL_FETCH_PRIOR 4
263#define SQL_FETCH_ABSOLUTE 5
264#define SQL_FETCH_RELATIVE 6
265
306
266/* SQLEndTran() options */
267#define SQL_COMMIT 0
268#define SQL_ROLLBACK 1
307/*
308 * SQLGetDescField - SQL_DESC_ALLOC_TYPE
309 */
310#if (ODBCVER >= 0x0300)
311#define SQL_DESC_ALLOC_AUTO 1
312#define SQL_DESC_ALLOC_USER 2
313#endif /* ODBCVER >= 0x0300 */
269
314
270/* null handles returned by SQLAllocHandle() */
271#define SQL_NULL_HENV 0
272#define SQL_NULL_HDBC 0
273#define SQL_NULL_HSTMT 0
315
316/*
317 * SQLGetDescField - SQL_DESC_DATETIME_INTERVAL_CODE
318 */
274#if (ODBCVER >= 0x0300)
319#if (ODBCVER >= 0x0300)
275#define SQL_NULL_HDESC 0
276#define SQL_NULL_DESC 0
277#endif
320#define SQL_CODE_DATE 1
321#define SQL_CODE_TIME 2
322#define SQL_CODE_TIMESTAMP 3
323#endif /* ODBCVER >= 0x0300 */
278
324
279/* null handle used in place of parent handle when allocating HENV */
325
326/*
327 * SQLGetDescField - SQL_DESC_UNNAMED
328 */
280#if (ODBCVER >= 0x0300)
329#if (ODBCVER >= 0x0300)
281#define SQL_NULL_HANDLE 0L
282#endif
330#define SQL_NAMED 0
331#define SQL_UNNAMED 1
332#endif /* ODBCVER >= 0x0300 */
283
333
284/* Values that may appear in the result set of SQLSpecialColumns() */
285#define SQL_SCOPE_CURROW 0
286#define SQL_SCOPE_TRANSACTION 1
287#define SQL_SCOPE_SESSION 2
288
334
289#define SQL_PC_UNKNOWN 0
335/*
336 * SQLGetDiagField - identifiers of fields in the diagnostics area
337 */
290#if (ODBCVER >= 0x0300)
338#if (ODBCVER >= 0x0300)
291#define SQL_PC_NON_PSEUDO 1
292#endif
293#define SQL_PC_PSEUDO 2
339#define SQL_DIAG_RETURNCODE 1
340#define SQL_DIAG_NUMBER 2
341#define SQL_DIAG_ROW_COUNT 3
342#define SQL_DIAG_SQLSTATE 4
343#define SQL_DIAG_NATIVE 5
344#define SQL_DIAG_MESSAGE_TEXT 6
345#define SQL_DIAG_DYNAMIC_FUNCTION 7
346#define SQL_DIAG_CLASS_ORIGIN 8
347#define SQL_DIAG_SUBCLASS_ORIGIN 9
348#define SQL_DIAG_CONNECTION_NAME 10
349#define SQL_DIAG_SERVER_NAME 11
350#define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12
351#endif /* ODBCVER >= 0x0300 */
294
352
295/* Reserved value for the IdentifierType argument of SQLSpecialColumns() */
353
354/*
355 * SQLGetDiagField - SQL_DIAG_DYNAMIC_FUNCTION_CODE
356 */
296#if (ODBCVER >= 0x0300)
357#if (ODBCVER >= 0x0300)
297#define SQL_ROW_IDENTIFIER 1
298#endif
358#define SQL_DIAG_ALTER_DOMAIN 3
359#define SQL_DIAG_ALTER_TABLE 4
360#define SQL_DIAG_CALL 7
361#define SQL_DIAG_CREATE_ASSERTION 6
362#define SQL_DIAG_CREATE_CHARACTER_SET 8
363#define SQL_DIAG_CREATE_COLLATION 10
364#define SQL_DIAG_CREATE_DOMAIN 23
365#define SQL_DIAG_CREATE_INDEX (-1)
366#define SQL_DIAG_CREATE_SCHEMA 64
367#define SQL_DIAG_CREATE_TABLE 77
368#define SQL_DIAG_CREATE_TRANSLATION 79
369#define SQL_DIAG_CREATE_VIEW 84
370#define SQL_DIAG_DELETE_WHERE 19
371#define SQL_DIAG_DROP_ASSERTION 24
372#define SQL_DIAG_DROP_CHARACTER_SET 25
373#define SQL_DIAG_DROP_COLLATION 26
374#define SQL_DIAG_DROP_DOMAIN 27
375#define SQL_DIAG_DROP_INDEX (-2)
376#define SQL_DIAG_DROP_SCHEMA 31
377#define SQL_DIAG_DROP_TABLE 32
378#define SQL_DIAG_DROP_TRANSLATION 33
379#define SQL_DIAG_DROP_VIEW 36
380#define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38
381#define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81
382#define SQL_DIAG_GRANT 48
383#define SQL_DIAG_INSERT 50
384#define SQL_DIAG_REVOKE 59
385#define SQL_DIAG_SELECT_CURSOR 85
386#define SQL_DIAG_UNKNOWN_STATEMENT 0
387#define SQL_DIAG_UPDATE_WHERE 82
388#endif /* ODBCVER >= 0x0300 */
299
389
300/* Reserved values for UNIQUE argument of SQLStatistics() */
301#define SQL_INDEX_UNIQUE 0
302#define SQL_INDEX_ALL 1
303
390
304/* Values that may appear in the result set of SQLStatistics() */
305#define SQL_INDEX_CLUSTERED 1
306#define SQL_INDEX_HASHED 2
307#define SQL_INDEX_OTHER 3
391/*
392 * SQLGetEnvAttr - environment attribute
393 */
394#if (ODBCVER >= 0x0300)
395#define SQL_ATTR_OUTPUT_NTS 10001
396#endif /* ODBCVER >= 0x0300 */
308
397
309/* SQLGetFunctions() values to identify ODBC APIs */
310#define SQL_API_SQLALLOCCONNECT 1
311#define SQL_API_SQLALLOCENV 2
398
399/*
400 * SQLGetFunctions
401 */
402#define SQL_API_SQLALLOCCONNECT 1
403#define SQL_API_SQLALLOCENV 2
312#if (ODBCVER >= 0x0300)
404#if (ODBCVER >= 0x0300)
313#define SQL_API_SQLALLOCHANDLE 1001
314#endif
315#define SQL_API_SQLALLOCSTMT 3
316#define SQL_API_SQLBINDCOL 4
405#define SQL_API_SQLALLOCHANDLE 1001
406#endif /* ODBCVER >= 0x0300 */
407#define SQL_API_SQLALLOCSTMT 3
408#define SQL_API_SQLBINDCOL 4
317#if (ODBCVER >= 0x0300)
409#if (ODBCVER >= 0x0300)
318#define SQL_API_SQLBINDPARAM 1002
319#endif
320#define SQL_API_SQLCANCEL 5
410#define SQL_API_SQLBINDPARAM 1002
411#endif /* ODBCVER >= 0x0300 */
412#define SQL_API_SQLCANCEL 5
321#if (ODBCVER >= 0x0300)
413#if (ODBCVER >= 0x0300)
322#define SQL_API_SQLCLOSECURSOR 1003
323#define SQL_API_SQLCOLATTRIBUTE 6
324#endif
325#define SQL_API_SQLCOLUMNS 40
326#define SQL_API_SQLCONNECT 7
414#define SQL_API_SQLCLOSECURSOR 1003
415#define SQL_API_SQLCOLATTRIBUTE 6
416#endif /* ODBCVER >= 0x0300 */
417#define SQL_API_SQLCOLUMNS 40
418#define SQL_API_SQLCONNECT 7
327#if (ODBCVER >= 0x0300)
419#if (ODBCVER >= 0x0300)
328#define SQL_API_SQLCOPYDESC 1004
329#endif
330#define SQL_API_SQLDATASOURCES 57
331#define SQL_API_SQLDESCRIBECOL 8
332#define SQL_API_SQLDISCONNECT 9
420#define SQL_API_SQLCOPYDESC 1004
421#endif /* ODBCVER >= 0x0300 */
422#define SQL_API_SQLDATASOURCES 57
423#define SQL_API_SQLDESCRIBECOL 8
424#define SQL_API_SQLDISCONNECT 9
333#if (ODBCVER >= 0x0300)
425#if (ODBCVER >= 0x0300)
334#define SQL_API_SQLENDTRAN 1005
335#endif
336#define SQL_API_SQLERROR 10
337#define SQL_API_SQLEXECDIRECT 11
338#define SQL_API_SQLEXECUTE 12
339#define SQL_API_SQLFETCH 13
426#define SQL_API_SQLENDTRAN 1005
427#endif /* ODBCVER >= 0x0300 */
428#define SQL_API_SQLERROR 10
429#define SQL_API_SQLEXECDIRECT 11
430#define SQL_API_SQLEXECUTE 12
431#define SQL_API_SQLFETCH 13
340#if (ODBCVER >= 0x0300)
432#if (ODBCVER >= 0x0300)
341#define SQL_API_SQLFETCHSCROLL 1021
342#endif
343#define SQL_API_SQLFREECONNECT 14
344#define SQL_API_SQLFREEENV 15
433#define SQL_API_SQLFETCHSCROLL 1021
434#endif /* ODBCVER >= 0x0300 */
435#define SQL_API_SQLFREECONNECT 14
436#define SQL_API_SQLFREEENV 15
345#if (ODBCVER >= 0x0300)
437#if (ODBCVER >= 0x0300)
346#define SQL_API_SQLFREEHANDLE 1006
347#endif
348#define SQL_API_SQLFREESTMT 16
438#define SQL_API_SQLFREEHANDLE 1006
439#endif /* ODBCVER >= 0x0300 */
440#define SQL_API_SQLFREESTMT 16
349#if (ODBCVER >= 0x0300)
441#if (ODBCVER >= 0x0300)
350#define SQL_API_SQLGETCONNECTATTR 1007
351#endif
352#define SQL_API_SQLGETCONNECTOPTION 42
353#define SQL_API_SQLGETCURSORNAME 17
354#define SQL_API_SQLGETDATA 43
442#define SQL_API_SQLGETCONNECTATTR 1007
443#endif /* ODBCVER >= 0x0300 */
444#define SQL_API_SQLGETCONNECTOPTION 42
445#define SQL_API_SQLGETCURSORNAME 17
446#define SQL_API_SQLGETDATA 43
355#if (ODBCVER >= 0x0300)
447#if (ODBCVER >= 0x0300)
356#define SQL_API_SQLGETDESCFIELD 1008
357#define SQL_API_SQLGETDESCREC 1009
358#define SQL_API_SQLGETDIAGFIELD 1010
359#define SQL_API_SQLGETDIAGREC 1011
360#define SQL_API_SQLGETENVATTR 1012
361#endif
362#define SQL_API_SQLGETFUNCTIONS 44
363#define SQL_API_SQLGETINFO 45
448#define SQL_API_SQLGETDESCFIELD 1008
449#define SQL_API_SQLGETDESCREC 1009
450#define SQL_API_SQLGETDIAGFIELD 1010
451#define SQL_API_SQLGETDIAGREC 1011
452#define SQL_API_SQLGETENVATTR 1012
453#endif /* ODBCVER >= 0x0300 */
454#define SQL_API_SQLGETFUNCTIONS 44
455#define SQL_API_SQLGETINFO 45
364#if (ODBCVER >= 0x0300)
456#if (ODBCVER >= 0x0300)
365#define SQL_API_SQLGETSTMTATTR 1014
366#endif
367#define SQL_API_SQLGETSTMTOPTION 46
368#define SQL_API_SQLGETTYPEINFO 47
369#define SQL_API_SQLNUMRESULTCOLS 18
370#define SQL_API_SQLPARAMDATA 48
371#define SQL_API_SQLPREPARE 19
372#define SQL_API_SQLPUTDATA 49
373#define SQL_API_SQLROWCOUNT 20
457#define SQL_API_SQLGETSTMTATTR 1014
458#endif /* ODBCVER >= 0x0300 */
459#define SQL_API_SQLGETSTMTOPTION 46
460#define SQL_API_SQLGETTYPEINFO 47
461#define SQL_API_SQLNUMRESULTCOLS 18
462#define SQL_API_SQLPARAMDATA 48
463#define SQL_API_SQLPREPARE 19
464#define SQL_API_SQLPUTDATA 49
465#define SQL_API_SQLROWCOUNT 20
374#if (ODBCVER >= 0x0300)
466#if (ODBCVER >= 0x0300)
375#define SQL_API_SQLSETCONNECTATTR 1016
376#endif
377#define SQL_API_SQLSETCONNECTOPTION 50
378#define SQL_API_SQLSETCURSORNAME 21
467#define SQL_API_SQLSETCONNECTATTR 1016
468#endif /* ODBCVER >= 0x0300 */
469#define SQL_API_SQLSETCONNECTOPTION 50
470#define SQL_API_SQLSETCURSORNAME 21
379#if (ODBCVER >= 0x0300)
471#if (ODBCVER >= 0x0300)
380#define SQL_API_SQLSETDESCFIELD 1017
381#define SQL_API_SQLSETDESCREC 1018
382#define SQL_API_SQLSETENVATTR 1019
383#endif
384#define SQL_API_SQLSETPARAM 22
472#define SQL_API_SQLSETDESCFIELD 1017
473#define SQL_API_SQLSETDESCREC 1018
474#define SQL_API_SQLSETENVATTR 1019
475#endif /* ODBCVER >= 0x0300 */
476#define SQL_API_SQLSETPARAM 22
385#if (ODBCVER >= 0x0300)
477#if (ODBCVER >= 0x0300)
386#define SQL_API_SQLSETSTMTATTR 1020
387#endif
388#define SQL_API_SQLSETSTMTOPTION 51
389#define SQL_API_SQLSPECIALCOLUMNS 52
390#define SQL_API_SQLSTATISTICS 53
391#define SQL_API_SQLTABLES 54
392#define SQL_API_SQLTRANSACT 23
478#define SQL_API_SQLSETSTMTATTR 1020
479#endif /* ODBCVER >= 0x0300 */
480#define SQL_API_SQLSETSTMTOPTION 51
481#define SQL_API_SQLSPECIALCOLUMNS 52
482#define SQL_API_SQLSTATISTICS 53
483#define SQL_API_SQLTABLES 54
484#define SQL_API_SQLTRANSACT 23
393
485
394/* Information requested by SQLGetInfo() */
486
487/*
488 * SQLGetInfo
489 */
395#if (ODBCVER >= 0x0300)
490#if (ODBCVER >= 0x0300)
396#define SQL_MAX_DRIVER_CONNECTIONS 0
491#define SQL_MAX_DRIVER_CONNECTIONS 0
397#define SQL_MAXIMUM_DRIVER_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
492#define SQL_MAXIMUM_DRIVER_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
398#define SQL_MAX_CONCURRENT_ACTIVITIES 1
493#define SQL_MAX_CONCURRENT_ACTIVITIES 1
399#define SQL_MAXIMUM_CONCURRENT_ACTIVITIES SQL_MAX_CONCURRENT_ACTIVITIES
494#define SQL_MAXIMUM_CONCURRENT_ACTIVITIES SQL_MAX_CONCURRENT_ACTIVITIES
400#endif
401#define SQL_DATA_SOURCE_NAME 2
402#define SQL_FETCH_DIRECTION 8
403#define SQL_SERVER_NAME 13
404#define SQL_SEARCH_PATTERN_ESCAPE 14
405#define SQL_DBMS_NAME 17
406#define SQL_DBMS_VER 18
407#define SQL_ACCESSIBLE_TABLES 19
408#define SQL_ACCESSIBLE_PROCEDURES 20
409#define SQL_CURSOR_COMMIT_BEHAVIOR 23
410#define SQL_DATA_SOURCE_READ_ONLY 25
411#define SQL_DEFAULT_TXN_ISOLATION 26
412#define SQL_IDENTIFIER_CASE 28
413#define SQL_IDENTIFIER_QUOTE_CHAR 29
414#define SQL_MAX_COLUMN_NAME_LEN 30
495#endif /* ODBCVER >= 0x0300 */
496#define SQL_DATA_SOURCE_NAME 2
497#define SQL_FETCH_DIRECTION 8
498#define SQL_SERVER_NAME 13
499#define SQL_SEARCH_PATTERN_ESCAPE 14
500#define SQL_DBMS_NAME 17
501#define SQL_DBMS_VER 18
502#define SQL_ACCESSIBLE_TABLES 19
503#define SQL_ACCESSIBLE_PROCEDURES 20
504#define SQL_CURSOR_COMMIT_BEHAVIOR 23
505#define SQL_DATA_SOURCE_READ_ONLY 25
506#define SQL_DEFAULT_TXN_ISOLATION 26
507#define SQL_IDENTIFIER_CASE 28
508#define SQL_IDENTIFIER_QUOTE_CHAR 29
509#define SQL_MAX_COLUMN_NAME_LEN 30
415#define SQL_MAXIMUM_COLUMN_NAME_LENGTH SQL_MAX_COLUMN_NAME_LEN
510#define SQL_MAXIMUM_COLUMN_NAME_LENGTH SQL_MAX_COLUMN_NAME_LEN
416#define SQL_MAX_CURSOR_NAME_LEN 31
511#define SQL_MAX_CURSOR_NAME_LEN 31
417#define SQL_MAXIMUM_CURSOR_NAME_LENGTH SQL_MAX_CURSOR_NAME_LEN
512#define SQL_MAXIMUM_CURSOR_NAME_LENGTH SQL_MAX_CURSOR_NAME_LEN
418#define SQL_MAX_SCHEMA_NAME_LEN 32
513#define SQL_MAX_SCHEMA_NAME_LEN 32
419#define SQL_MAXIMUM_SCHEMA_NAME_LENGTH SQL_MAX_SCHEMA_NAME_LEN
514#define SQL_MAXIMUM_SCHEMA_NAME_LENGTH SQL_MAX_SCHEMA_NAME_LEN
420#define SQL_MAX_CATALOG_NAME_LEN 34
515#define SQL_MAX_CATALOG_NAME_LEN 34
421#define SQL_MAXIMUM_CATALOG_NAME_LENGTH SQL_MAX_CATALOG_NAME_LEN
516#define SQL_MAXIMUM_CATALOG_NAME_LENGTH SQL_MAX_CATALOG_NAME_LEN
422#define SQL_MAX_TABLE_NAME_LEN 35
423#define SQL_SCROLL_CONCURRENCY 43
424#define SQL_TXN_CAPABLE 46
425#define SQL_TRANSACTION_CAPABLE SQL_TXN_CAPABLE
426#define SQL_USER_NAME 47
427#define SQL_TXN_ISOLATION_OPTION 72
517#define SQL_MAX_TABLE_NAME_LEN 35
518#define SQL_SCROLL_CONCURRENCY 43
519#define SQL_TXN_CAPABLE 46
520#define SQL_TRANSACTION_CAPABLE SQL_TXN_CAPABLE
521#define SQL_USER_NAME 47
522#define SQL_TXN_ISOLATION_OPTION 72
428#define SQL_TRANSACTION_ISOLATION_OPTION SQL_TXN_ISOLATION_OPTION
523#define SQL_TRANSACTION_ISOLATION_OPTION SQL_TXN_ISOLATION_OPTION
429#define SQL_INTEGRITY 73
430#define SQL_GETDATA_EXTENSIONS 81
431#define SQL_NULL_COLLATION 85
432#define SQL_ALTER_TABLE 86
433#define SQL_ORDER_BY_COLUMNS_IN_SELECT 90
434#define SQL_SPECIAL_CHARACTERS 94
435#define SQL_MAX_COLUMNS_IN_GROUP_BY 97
524#define SQL_INTEGRITY 73
525#define SQL_GETDATA_EXTENSIONS 81
526#define SQL_NULL_COLLATION 85
527#define SQL_ALTER_TABLE 86
528#define SQL_ORDER_BY_COLUMNS_IN_SELECT 90
529#define SQL_SPECIAL_CHARACTERS 94
530#define SQL_MAX_COLUMNS_IN_GROUP_BY 97
436#define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY SQL_MAX_COLUMNS_IN_GROUP_BY
531#define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY SQL_MAX_COLUMNS_IN_GROUP_BY
437#define SQL_MAX_COLUMNS_IN_INDEX 98
532#define SQL_MAX_COLUMNS_IN_INDEX 98
438#define SQL_MAXIMUM_COLUMNS_IN_INDEX SQL_MAX_COLUMNS_IN_INDEX
533#define SQL_MAXIMUM_COLUMNS_IN_INDEX SQL_MAX_COLUMNS_IN_INDEX
439#define SQL_MAX_COLUMNS_IN_ORDER_BY 99
534#define SQL_MAX_COLUMNS_IN_ORDER_BY 99
440#define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY SQL_MAX_COLUMNS_IN_ORDER_BY
535#define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY SQL_MAX_COLUMNS_IN_ORDER_BY
441#define SQL_MAX_COLUMNS_IN_SELECT 100
442#define SQL_MAXIMUM_COLUMNS_IN_SELECT SQL_MAX_COLUMNS_IN_SELECT
443#define SQL_MAX_COLUMNS_IN_TABLE 101
444#define SQL_MAX_INDEX_SIZE 102
445#define SQL_MAXIMUM_INDEX_SIZE SQL_MAX_INDEX_SIZE
446#define SQL_MAX_ROW_SIZE 104
447#define SQL_MAXIMUM_ROW_SIZE SQL_MAX_ROW_SIZE
448#define SQL_MAX_STATEMENT_LEN 105
449#define SQL_MAXIMUM_STATEMENT_LENGTH SQL_MAX_STATEMENT_LEN
450#define SQL_MAX_TABLES_IN_SELECT 106
451#define SQL_MAXIMUM_TABLES_IN_SELECT SQL_MAX_TABLES_IN_SELECT
452#define SQL_MAX_USER_NAME_LEN 107
453#define SQL_MAXIMUM_USER_NAME_LENGTH SQL_MAX_USER_NAME_LEN
536#define SQL_MAX_COLUMNS_IN_SELECT 100
537#define SQL_MAXIMUM_COLUMNS_IN_SELECT SQL_MAX_COLUMNS_IN_SELECT
538#define SQL_MAX_COLUMNS_IN_TABLE 101
539#define SQL_MAX_INDEX_SIZE 102
540#define SQL_MAXIMUM_INDEX_SIZE SQL_MAX_INDEX_SIZE
541#define SQL_MAX_ROW_SIZE 104
542#define SQL_MAXIMUM_ROW_SIZE SQL_MAX_ROW_SIZE
543#define SQL_MAX_STATEMENT_LEN 105
544#define SQL_MAXIMUM_STATEMENT_LENGTH SQL_MAX_STATEMENT_LEN
545#define SQL_MAX_TABLES_IN_SELECT 106
546#define SQL_MAXIMUM_TABLES_IN_SELECT SQL_MAX_TABLES_IN_SELECT
547#define SQL_MAX_USER_NAME_LEN 107
548#define SQL_MAXIMUM_USER_NAME_LENGTH SQL_MAX_USER_NAME_LEN
454#if (ODBCVER >= 0x0300)
549#if (ODBCVER >= 0x0300)
455#define SQL_OJ_CAPABILITIES 115
456#define SQL_OUTER_JOIN_CAPABILITIES SQL_OJ_CAPABILITIES
457#endif /* ODBCVER >= 0x0300 */
550#define SQL_OJ_CAPABILITIES 115
551#define SQL_OUTER_JOIN_CAPABILITIES SQL_OJ_CAPABILITIES
552#endif /* ODBCVER >= 0x0300 */
458
459#if (ODBCVER >= 0x0300)
553
554#if (ODBCVER >= 0x0300)
460#define SQL_XOPEN_CLI_YEAR 10000
461#define SQL_CURSOR_SENSITIVITY 10001
462#define SQL_DESCRIBE_PARAMETER 10002
463#define SQL_CATALOG_NAME 10003
464#define SQL_COLLATION_SEQ 10004
465#define SQL_MAX_IDENTIFIER_LEN 10005
466#define SQL_MAXIMUM_IDENTIFIER_LENGTH SQL_MAX_IDENTIFIER_LEN
467#endif /* ODBCVER >= 0x0300 */
555#define SQL_XOPEN_CLI_YEAR 10000
556#define SQL_CURSOR_SENSITIVITY 10001
557#define SQL_DESCRIBE_PARAMETER 10002
558#define SQL_CATALOG_NAME 10003
559#define SQL_COLLATION_SEQ 10004
560#define SQL_MAX_IDENTIFIER_LEN 10005
561#define SQL_MAXIMUM_IDENTIFIER_LENGTH SQL_MAX_IDENTIFIER_LEN
562#endif /* ODBCVER >= 0x0300 */
468
563
469/* SQL_ALTER_TABLE bitmasks */
564
565/*
566 * SQLGetInfo - SQL_ALTER_TABLE
567 */
470#if (ODBCVER >= 0x0200)
568#if (ODBCVER >= 0x0200)
471#define SQL_AT_ADD_COLUMN 0x00000001L
472#define SQL_AT_DROP_COLUMN 0x00000002L
473#endif /* ODBCVER >= 0x0200 */
569#define SQL_AT_ADD_COLUMN 0x00000001L
570#define SQL_AT_DROP_COLUMN 0x00000002L
571#endif /* ODBCVER >= 0x0300 */
474
475#if (ODBCVER >= 0x0300)
572
573#if (ODBCVER >= 0x0300)
476#define SQL_AT_ADD_CONSTRAINT 0x00000008L
574#define SQL_AT_ADD_CONSTRAINT 0x00000008L
575/*
576 * The following bitmasks are ODBC extensions and defined in sqlext.h:
577 *
578 * #define SQL_AT_COLUMN_SINGLE 0x00000020L
579 * #define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L
580 * #define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L
581 * #define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L
582 * #define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L
583 * #define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L
584 * #define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L
585 * #define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L
586 * #define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L
587 * #define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L
588 * #define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L
589 * #define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L
590 * #define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L
591 * #define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L
592 * #define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L
593 */
594#endif /* ODBCVER >= 0x0300 */
477
595
478/* The following bitmasks are ODBC extensions and defined in sqlext.h
479*#define SQL_AT_COLUMN_SINGLE 0x00000020L
480*#define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L
481*#define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L
482*#define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L
483*#define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L
484*#define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L
485*#define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L
486*#define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L
487*#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L
488*#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L
489*#define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L
490*#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L
491*#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L
492*#define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L
493*#define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L
494*/
495#endif /* ODBCVER >= 0x0300 */
496
596
497
498/* SQL_ASYNC_MODE values */
597/*
598 * SQLGetInfo - SQL_ASYNC_MODE
599 */
499#if (ODBCVER >= 0x0300)
600#if (ODBCVER >= 0x0300)
500#define SQL_AM_NONE 0
501#define SQL_AM_CONNECTION 1
502#define SQL_AM_STATEMENT 2
503#endif
601#define SQL_AM_NONE 0
602#define SQL_AM_CONNECTION 1
603#define SQL_AM_STATEMENT 2
604#endif /* ODBCVER >= 0x0300 */
504
605
505/* SQL_CURSOR_COMMIT_BEHAVIOR values */
506#define SQL_CB_DELETE 0
507#define SQL_CB_CLOSE 1
508#define SQL_CB_PRESERVE 2
509
606
510/* SQL_FETCH_DIRECTION bitmasks */
511#define SQL_FD_FETCH_NEXT 0x00000001L
512#define SQL_FD_FETCH_FIRST 0x00000002L
513#define SQL_FD_FETCH_LAST 0x00000004L
514#define SQL_FD_FETCH_PRIOR 0x00000008L
515#define SQL_FD_FETCH_ABSOLUTE 0x00000010L
516#define SQL_FD_FETCH_RELATIVE 0x00000020L
607/*
608 * SQLGetInfo - SQL_CURSOR_COMMIT_BEHAVIOR
609 */
610#define SQL_CB_DELETE 0
611#define SQL_CB_CLOSE 1
612#define SQL_CB_PRESERVE 2
517
613
518/* SQL_GETDATA_EXTENSIONS bitmasks */
519#define SQL_GD_ANY_COLUMN 0x00000001L
520#define SQL_GD_ANY_ORDER 0x00000002L
521
614
522/* SQL_IDENTIFIER_CASE values */
523#define SQL_IC_UPPER 1
524#define SQL_IC_LOWER 2
525#define SQL_IC_SENSITIVE 3
526#define SQL_IC_MIXED 4
615/*
616 * SQLGetInfo - SQL_FETCH_DIRECTION
617 */
618#define SQL_FD_FETCH_NEXT 0x00000001L
619#define SQL_FD_FETCH_FIRST 0x00000002L
620#define SQL_FD_FETCH_LAST 0x00000004L
621#define SQL_FD_FETCH_PRIOR 0x00000008L
622#define SQL_FD_FETCH_ABSOLUTE 0x00000010L
623#define SQL_FD_FETCH_RELATIVE 0x00000020L
527
624
528/* SQL_OJ_CAPABILITIES bitmasks */
529/* NB: this means 'outer join', not what you may be thinking */
530
625
626/*
627 * SQLGetInfo - SQL_GETDATA_EXTENSIONS
628 */
629#define SQL_GD_ANY_COLUMN 0x00000001L
630#define SQL_GD_ANY_ORDER 0x00000002L
531
631
632
633/*
634 * SQLGetInfo - SQL_IDENTIFIER_CASE
635 */
636#define SQL_IC_UPPER 1
637#define SQL_IC_LOWER 2
638#define SQL_IC_SENSITIVE 3
639#define SQL_IC_MIXED 4
640
641
642/*
643 * SQLGetInfo - SQL_NULL_COLLATION
644 */
645#define SQL_NC_HIGH 0
646#define SQL_NC_LOW 1
647
648
649/*
650 * SQLGetInfo - SQL_OJ_CAPABILITIES
651 */
532#if (ODBCVER >= 0x0201)
652#if (ODBCVER >= 0x0201)
533#define SQL_OJ_LEFT 0x00000001L
534#define SQL_OJ_RIGHT 0x00000002L
535#define SQL_OJ_FULL 0x00000004L
536#define SQL_OJ_NESTED 0x00000008L
537#define SQL_OJ_NOT_ORDERED 0x00000010L
538#define SQL_OJ_INNER 0x00000020L
539#define SQL_OJ_ALL_COMPARISON_OPS 0x00000040L
653#define SQL_OJ_LEFT 0x00000001L
654#define SQL_OJ_RIGHT 0x00000002L
655#define SQL_OJ_FULL 0x00000004L
656#define SQL_OJ_NESTED 0x00000008L
657#define SQL_OJ_NOT_ORDERED 0x00000010L
658#define SQL_OJ_INNER 0x00000020L
659#define SQL_OJ_ALL_COMPARISON_OPS 0x00000040L
540#endif
541
660#endif
661
542/* SQL_SCROLL_CONCURRENCY bitmasks */
543#define SQL_SCCO_READ_ONLY 0x00000001L
544#define SQL_SCCO_LOCK 0x00000002L
545#define SQL_SCCO_OPT_ROWVER 0x00000004L
546#define SQL_SCCO_OPT_VALUES 0x00000008L
547
662
548/* SQL_TXN_CAPABLE values */
549#define SQL_TC_NONE 0
550#define SQL_TC_DML 1
551#define SQL_TC_ALL 2
552#define SQL_TC_DDL_COMMIT 3
553#define SQL_TC_DDL_IGNORE 4
663/*
664 * SQLGetInfo - SQL_SCROLL_CONCURRENCY
665 */
666#define SQL_SCCO_READ_ONLY 0x00000001L
667#define SQL_SCCO_LOCK 0x00000002L
668#define SQL_SCCO_OPT_ROWVER 0x00000004L
669#define SQL_SCCO_OPT_VALUES 0x00000008L
554
670
555/* SQL_TXN_ISOLATION_OPTION bitmasks */
556#define SQL_TXN_READ_UNCOMMITTED 0x00000001L
671
672/*
673 * SQLGetInfo - SQL_TXN_CAPABLE
674 */
675#define SQL_TC_NONE 0
676#define SQL_TC_DML 1
677#define SQL_TC_ALL 2
678#define SQL_TC_DDL_COMMIT 3
679#define SQL_TC_DDL_IGNORE 4
680
681
682/*
683 * SQLGetInfo - SQL_TXN_ISOLATION_OPTION
684 */
685#define SQL_TXN_READ_UNCOMMITTED 0x00000001L
557#define SQL_TRANSACTION_READ_UNCOMMITTED SQL_TXN_READ_UNCOMMITTED
686#define SQL_TRANSACTION_READ_UNCOMMITTED SQL_TXN_READ_UNCOMMITTED
558#define SQL_TXN_READ_COMMITTED 0x00000002L
687#define SQL_TXN_READ_COMMITTED 0x00000002L
559#define SQL_TRANSACTION_READ_COMMITTED SQL_TXN_READ_COMMITTED
688#define SQL_TRANSACTION_READ_COMMITTED SQL_TXN_READ_COMMITTED
560#define SQL_TXN_REPEATABLE_READ 0x00000004L
689#define SQL_TXN_REPEATABLE_READ 0x00000004L
561#define SQL_TRANSACTION_REPEATABLE_READ SQL_TXN_REPEATABLE_READ
690#define SQL_TRANSACTION_REPEATABLE_READ SQL_TXN_REPEATABLE_READ
562#define SQL_TXN_SERIALIZABLE 0x00000008L
691#define SQL_TXN_SERIALIZABLE 0x00000008L
563#define SQL_TRANSACTION_SERIALIZABLE SQL_TXN_SERIALIZABLE
564
692#define SQL_TRANSACTION_SERIALIZABLE SQL_TXN_SERIALIZABLE
693
565/* SQL_NULL_COLLATION values */
566#define SQL_NC_HIGH 0
567#define SQL_NC_LOW 1
568
694
569 SQLRETURN SQL_API SQLAllocConnect(SQLHENV EnvironmentHandle,
570 SQLHDBC *ConnectionHandle);
695/*
696 * SQLGetStmtAttr - statement attributes
697 */
698#if (ODBCVER >= 0x0300)
699#define SQL_ATTR_APP_ROW_DESC 10010
700#define SQL_ATTR_APP_PARAM_DESC 10011
701#define SQL_ATTR_IMP_ROW_DESC 10012
702#define SQL_ATTR_IMP_PARAM_DESC 10013
703#define SQL_ATTR_CURSOR_SCROLLABLE (-1)
704#define SQL_ATTR_CURSOR_SENSITIVITY (-2)
705#endif /* ODBCVER >= 0x0300 */
571
706
572 SQLRETURN SQL_API SQLAllocEnv(SQLHENV *EnvironmentHandle);
573
707
708/*
709 * SQLGetStmtAttr - SQL_ATTR_CURSOR_SCROLLABLE
710 */
574#if (ODBCVER >= 0x0300)
711#if (ODBCVER >= 0x0300)
575 SQLRETURN SQL_API SQLAllocHandle(SQLSMALLINT HandleType,
576 SQLHANDLE InputHandle, SQLHANDLE *OutputHandle);
577#endif
712#define SQL_NONSCROLLABLE 0
713#define SQL_SCROLLABLE 1
714#endif /* ODBCVER >= 0x0300 */
578
715
579 SQLRETURN SQL_API SQLAllocStmt(SQLHDBC ConnectionHandle,
580 SQLHSTMT *StatementHandle);
581
716
582 SQLRETURN SQL_API SQLBindCol(SQLHSTMT StatementHandle,
583 SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType,
584 SQLPOINTER TargetValue, SQLLEN BufferLength,
585 SQLLEN *StrLen_or_Ind);
717/*
718 * SQLGetStmtAttr - SQL_ATTR_CURSOR_SENSITIVITY
719 */
720#if (ODBCVER >= 0x0300)
721#define SQL_UNSPECIFIED 0
722#define SQL_INSENSITIVE 1
723#define SQL_SENSITIVE 2
724#endif /* ODBCVER >= 0x0300 */
586
725
726
727/*
728 * SQLGetTypeInfo - SEARCHABLE
729 */
587#if (ODBCVER >= 0x0300)
730#if (ODBCVER >= 0x0300)
588 SQLRETURN SQL_API SQLBindParam(SQLHSTMT StatementHandle,
589 SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType,
590 SQLSMALLINT ParameterType, SQLULEN LengthPrecision,
591 SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue,
592 SQLLEN *StrLen_or_Ind);
593#endif
731#define SQL_PRED_NONE 0
732#define SQL_PRED_CHAR 1
733#define SQL_PRED_BASIC 2
734#endif /* ODBCVER >= 0x0300 */
594
735
595 SQLRETURN SQL_API SQLCancel(SQLHSTMT StatementHandle);
596
736
737/*
738 * SQLSpecialColumns - Column scopes
739 */
740#define SQL_SCOPE_CURROW 0
741#define SQL_SCOPE_TRANSACTION 1
742#define SQL_SCOPE_SESSION 2
743
744
745/*
746 * SQLSpecialColumns - PSEUDO_COLUMN
747 */
748#define SQL_PC_UNKNOWN 0
597#if (ODBCVER >= 0x0300)
749#if (ODBCVER >= 0x0300)
598 SQLRETURN SQL_API SQLCloseCursor(SQLHSTMT StatementHandle);
750#define SQL_PC_NON_PSEUDO 1
751#endif /* ODBCVER >= 0x0300 */
752#define SQL_PC_PSEUDO 2
599
753
600 SQLRETURN SQL_API SQLColAttribute(SQLHSTMT StatementHandle,
601 SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier,
602 SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength,
603 SQLSMALLINT *StringLength, SQLLEN *NumericAttribute
604 /* spec says (SQLPOINTER) not (SQLEN*) - PAH */ );
605 /* Ms now say SQLLEN* http://msdn.microsoft.com/library/en-us/odbc/htm/dasdkodbcoverview_64bit.asp - NG */
606
754
755/*
756 * SQLSpecialColumns - IdentifierType
757 */
758#if (ODBCVER >= 0x0300)
759#define SQL_ROW_IDENTIFIER 1
760#endif /* ODBCVER >= 0x0300 */
761
762
763/*
764 * SQLStatistics - fUnique
765 */
766#define SQL_INDEX_UNIQUE 0
767#define SQL_INDEX_ALL 1
768
769
770/*
771 * SQLStatistics - TYPE
772 */
773#define SQL_INDEX_CLUSTERED 1
774#define SQL_INDEX_HASHED 2
775#define SQL_INDEX_OTHER 3
776
777
778/*
779 * SQLTransact/SQLEndTran
780 */
781#define SQL_COMMIT 0
782#define SQL_ROLLBACK 1
783
784
785/*
786 * Function Prototypes
787 */
788SQLRETURN SQL_API SQLAllocConnect (
789 SQLHENV EnvironmentHandle,
790 SQLHDBC * ConnectionHandle);
791
792SQLRETURN SQL_API SQLAllocEnv (
793 SQLHENV * EnvironmentHandle);
794
795#if (ODBCVER >= 0x0300)
796SQLRETURN SQL_API SQLAllocHandle (
797 SQLSMALLINT HandleType,
798 SQLHANDLE InputHandle,
799 SQLHANDLE * OutputHandle);
800#endif /* ODBCVER >= 0x0300 */
801
802SQLRETURN SQL_API SQLAllocStmt (
803 SQLHDBC ConnectionHandle,
804 SQLHSTMT * StatementHandle);
805
806SQLRETURN SQL_API SQLBindCol (
807 SQLHSTMT StatementHandle,
808 SQLUSMALLINT ColumnNumber,
809 SQLSMALLINT TargetType,
810 SQLPOINTER TargetValue,
811 SQLLEN BufferLength,
812 SQLLEN * StrLen_or_Ind);
813
814#if (ODBCVER >= 0x0300)
815SQLRETURN SQL_API SQLBindParam (
816 SQLHSTMT StatementHandle,
817 SQLUSMALLINT ParameterNumber,
818 SQLSMALLINT ValueType,
819 SQLSMALLINT ParameterType,
820 SQLULEN LengthPrecision,
821 SQLSMALLINT ParameterScale,
822 SQLPOINTER ParameterValue,
823 SQLLEN * StrLen_or_Ind);
607#endif
608
824#endif
825
826SQLRETURN SQL_API SQLCancel (
827 SQLHSTMT StatementHandle);
609
828
610 SQLRETURN SQL_API SQLColumns(SQLHSTMT StatementHandle,
611 SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
612 SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
613 SQLCHAR *TableName, SQLSMALLINT NameLength3,
614 SQLCHAR *ColumnName, SQLSMALLINT NameLength4);
829#if (ODBCVER >= 0x0300)
830SQLRETURN SQL_API SQLCloseCursor (
831 SQLHSTMT StatementHandle);
615
832
833/*
834 * Using SQLLEN * instead of SQLPOINTER for NumericAttribute,
835 * makes the prototype the same as SQLColAttributes (deprecated)
836 * and clearer for 64bit ports
837 */
838SQLRETURN SQL_API SQLColAttribute (
839 SQLHSTMT StatementHandle,
840 SQLUSMALLINT ColumnNumber,
841 SQLUSMALLINT FieldIdentifier,
842 SQLPOINTER CharacterAttribute,
843 SQLSMALLINT BufferLength,
844 SQLSMALLINT * StringLength,
845 SQLLEN * NumericAttribute);
846#endif
616
847
617 SQLRETURN SQL_API SQLConnect(SQLHDBC ConnectionHandle,
618 SQLCHAR *ServerName, SQLSMALLINT NameLength1,
619 SQLCHAR *UserName, SQLSMALLINT NameLength2,
620 SQLCHAR *Authentication, SQLSMALLINT NameLength3);
848SQLRETURN SQL_API SQLColumns (
849 SQLHSTMT StatementHandle,
850 SQLCHAR * CatalogName,
851 SQLSMALLINT NameLength1,
852 SQLCHAR * SchemaName,
853 SQLSMALLINT NameLength2,
854 SQLCHAR * TableName,
855 SQLSMALLINT NameLength3,
856 SQLCHAR * ColumnName,
857 SQLSMALLINT NameLength4);
621
858
859SQLRETURN SQL_API SQLConnect (
860 SQLHDBC ConnectionHandle,
861 SQLCHAR * ServerName,
862 SQLSMALLINT NameLength1,
863 SQLCHAR * UserName,
864 SQLSMALLINT NameLength2,
865 SQLCHAR * Authentication,
866 SQLSMALLINT NameLength3);
867
622#if (ODBCVER >= 0x0300)
868#if (ODBCVER >= 0x0300)
623 SQLRETURN SQL_API SQLCopyDesc(SQLHDESC SourceDescHandle,
624 SQLHDESC TargetDescHandle);
869SQLRETURN SQL_API SQLCopyDesc (
870 SQLHDESC SourceDescHandle,
871 SQLHDESC TargetDescHandle);
625#endif
626
872#endif
873
627 SQLRETURN SQL_API SQLDataSources(SQLHENV EnvironmentHandle,
628 SQLUSMALLINT Direction, SQLCHAR *ServerName,
629 SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1,
630 SQLCHAR *Description, SQLSMALLINT BufferLength2,
631 SQLSMALLINT *NameLength2);
874SQLRETURN SQL_API SQLDataSources (
875 SQLHENV EnvironmentHandle,
876 SQLUSMALLINT Direction,
877 SQLCHAR * ServerName,
878 SQLSMALLINT BufferLength1,
879 SQLSMALLINT * NameLength1,
880 SQLCHAR * Description,
881 SQLSMALLINT BufferLength2,
882 SQLSMALLINT * NameLength2);
632
883
633 SQLRETURN SQL_API SQLDescribeCol(SQLHSTMT StatementHandle,
634 SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName,
635 SQLSMALLINT BufferLength, SQLSMALLINT *NameLength,
636 SQLSMALLINT *DataType, SQLULEN *ColumnSize,
637 SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable);
884SQLRETURN SQL_API SQLDescribeCol (
885 SQLHSTMT StatementHandle,
886 SQLUSMALLINT ColumnNumber,
887 SQLCHAR * ColumnName,
888 SQLSMALLINT BufferLength,
889 SQLSMALLINT * NameLength,
890 SQLSMALLINT * DataType,
891 SQLULEN * ColumnSize,
892 SQLSMALLINT * DecimalDigits,
893 SQLSMALLINT * Nullable);
638
894
639 SQLRETURN SQL_API SQLDisconnect(SQLHDBC ConnectionHandle);
895SQLRETURN SQL_API SQLDisconnect (
896 SQLHDBC ConnectionHandle);
640
641#if (ODBCVER >= 0x0300)
897
898#if (ODBCVER >= 0x0300)
642 SQLRETURN SQL_API SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle,
643 SQLSMALLINT CompletionType);
899SQLRETURN SQL_API SQLEndTran (
900 SQLSMALLINT HandleType,
901 SQLHANDLE Handle,
902 SQLSMALLINT CompletionType);
644#endif
645
903#endif
904
646 SQLRETURN SQL_API SQLError(SQLHENV EnvironmentHandle,
647 SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle,
648 SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
649 SQLCHAR *MessageText, SQLSMALLINT BufferLength,
650 SQLSMALLINT *TextLength);
905SQLRETURN SQL_API SQLError (
906 SQLHENV EnvironmentHandle,
907 SQLHDBC ConnectionHandle,
908 SQLHSTMT StatementHandle,
909 SQLCHAR * Sqlstate,
910 SQLINTEGER * NativeError,
911 SQLCHAR * MessageText,
912 SQLSMALLINT BufferLength,
913 SQLSMALLINT * TextLength);
651
914
652 SQLRETURN SQL_API SQLExecDirect(SQLHSTMT StatementHandle,
653 SQLCHAR *StatementText, SQLINTEGER TextLength);
915SQLRETURN SQL_API SQLExecDirect (
916 SQLHSTMT StatementHandle,
917 SQLCHAR * StatementText,
918 SQLINTEGER TextLength);
654
919
655 SQLRETURN SQL_API SQLExecute(SQLHSTMT StatementHandle);
920SQLRETURN SQL_API SQLExecute (
921 SQLHSTMT StatementHandle);
656
922
657 SQLRETURN SQL_API SQLFetch(SQLHSTMT StatementHandle);
923SQLRETURN SQL_API SQLFetch (
924 SQLHSTMT StatementHandle);
658
659#if (ODBCVER >= 0x0300)
925
926#if (ODBCVER >= 0x0300)
660 SQLRETURN SQL_API SQLFetchScroll(SQLHSTMT StatementHandle,
661 SQLSMALLINT FetchOrientation, SQLLEN FetchOffset);
927SQLRETURN SQL_API SQLFetchScroll (
928 SQLHSTMT StatementHandle,
929 SQLSMALLINT FetchOrientation,
930 SQLLEN FetchOffset);
662#endif
663
931#endif
932
664 SQLRETURN SQL_API SQLFreeConnect(SQLHDBC ConnectionHandle);
933SQLRETURN SQL_API SQLFreeConnect (
934 SQLHDBC ConnectionHandle);
665
935
666 SQLRETURN SQL_API SQLFreeEnv(SQLHENV EnvironmentHandle);
936SQLRETURN SQL_API SQLFreeEnv (
937 SQLHENV EnvironmentHandle);
667
668#if (ODBCVER >= 0x0300)
938
939#if (ODBCVER >= 0x0300)
669 SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle);
940SQLRETURN SQL_API SQLFreeHandle (
941 SQLSMALLINT HandleType,
942 SQLHANDLE Handle);
670#endif
671
943#endif
944
672 SQLRETURN SQL_API SQLFreeStmt(SQLHSTMT StatementHandle,
673 SQLUSMALLINT Option);
945SQLRETURN SQL_API SQLFreeStmt (
946 SQLHSTMT StatementHandle,
947 SQLUSMALLINT Option);
674
675#if (ODBCVER >= 0x0300)
948
949#if (ODBCVER >= 0x0300)
676 SQLRETURN SQL_API SQLGetConnectAttr(SQLHDBC ConnectionHandle,
677 SQLINTEGER Attribute, SQLPOINTER Value,
678 SQLINTEGER BufferLength, SQLINTEGER *StringLength);
950SQLRETURN SQL_API SQLGetConnectAttr (
951 SQLHDBC ConnectionHandle,
952 SQLINTEGER Attribute,
953 SQLPOINTER Value,
954 SQLINTEGER BufferLength,
955 SQLINTEGER * StringLength);
679#endif
680
956#endif
957
681 SQLRETURN SQL_API SQLGetConnectOption(SQLHDBC ConnectionHandle,
682 SQLUSMALLINT Option, SQLPOINTER Value);
958SQLRETURN SQL_API SQLGetConnectOption (
959 SQLHDBC ConnectionHandle,
960 SQLUSMALLINT Option,
961 SQLPOINTER Value);
683
962
684 SQLRETURN SQL_API SQLGetCursorName(SQLHSTMT StatementHandle,
685 SQLCHAR *CursorName, SQLSMALLINT BufferLength,
686 SQLSMALLINT *NameLength);
963SQLRETURN SQL_API SQLGetCursorName (
964 SQLHSTMT StatementHandle,
965 SQLCHAR * CursorName,
966 SQLSMALLINT BufferLength,
967 SQLSMALLINT * NameLength);
687
968
688 SQLRETURN SQL_API SQLGetData(SQLHSTMT StatementHandle,
689 SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType,
690 SQLPOINTER TargetValue, SQLLEN BufferLength,
691 SQLLEN *StrLen_or_Ind);
969SQLRETURN SQL_API SQLGetData (
970 SQLHSTMT StatementHandle,
971 SQLUSMALLINT ColumnNumber,
972 SQLSMALLINT TargetType,
973 SQLPOINTER TargetValue,
974 SQLLEN BufferLength,
975 SQLLEN * StrLen_or_Ind);
692
693#if (ODBCVER >= 0x0300)
976
977#if (ODBCVER >= 0x0300)
694 SQLRETURN SQLGetDescField(SQLHDESC DescriptorHandle,
695 SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
696 SQLPOINTER Value, SQLINTEGER BufferLength,
697 SQLINTEGER *StringLength);
978SQLRETURN SQL_API SQLGetDescField (
979 SQLHDESC DescriptorHandle,
980 SQLSMALLINT RecNumber,
981 SQLSMALLINT FieldIdentifier,
982 SQLPOINTER Value,
983 SQLINTEGER BufferLength,
984 SQLINTEGER * StringLength);
698
985
699 SQLRETURN SQL_API SQLGetDescRec(SQLHDESC DescriptorHandle,
700 SQLSMALLINT RecNumber, SQLCHAR *Name,
701 SQLSMALLINT BufferLength, SQLSMALLINT *StringLength,
702 SQLSMALLINT *Type, SQLSMALLINT *SubType,
703 SQLLEN *Length, SQLSMALLINT *Precision,
704 SQLSMALLINT *Scale, SQLSMALLINT *Nullable);
986SQLRETURN SQL_API SQLGetDescRec (
987 SQLHDESC DescriptorHandle,
988 SQLSMALLINT RecNumber,
989 SQLCHAR * Name,
990 SQLSMALLINT BufferLength,
991 SQLSMALLINT * StringLength,
992 SQLSMALLINT * Type,
993 SQLSMALLINT * SubType,
994 SQLLEN * Length,
995 SQLSMALLINT * Precision,
996 SQLSMALLINT * Scale,
997 SQLSMALLINT * Nullable);
705
998
706 SQLRETURN SQL_API SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle,
707 SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier,
708 SQLPOINTER DiagInfo, SQLSMALLINT BufferLength,
709 SQLSMALLINT *StringLength);
999SQLRETURN SQL_API SQLGetDiagField (
1000 SQLSMALLINT HandleType,
1001 SQLHANDLE Handle,
1002 SQLSMALLINT RecNumber,
1003 SQLSMALLINT DiagIdentifier,
1004 SQLPOINTER DiagInfo,
1005 SQLSMALLINT BufferLength,
1006 SQLSMALLINT * StringLength);
710
1007
711 SQLRETURN SQL_API SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle,
712 SQLSMALLINT RecNumber, SQLCHAR *Sqlstate,
713 SQLINTEGER *NativeError, SQLCHAR *MessageText,
714 SQLSMALLINT BufferLength, SQLSMALLINT *TextLength);
1008SQLRETURN SQL_API SQLGetDiagRec (
1009 SQLSMALLINT HandleType,
1010 SQLHANDLE Handle,
1011 SQLSMALLINT RecNumber,
1012 SQLCHAR * Sqlstate,
1013 SQLINTEGER * NativeError,
1014 SQLCHAR * MessageText,
1015 SQLSMALLINT BufferLength,
1016 SQLSMALLINT * TextLength);
715
1017
716 SQLRETURN SQL_API SQLGetEnvAttr(SQLHENV EnvironmentHandle,
717 SQLINTEGER Attribute, SQLPOINTER Value,
718 SQLINTEGER BufferLength, SQLINTEGER *StringLength);
719#endif /* ODBCVER >= 0x0300 */
1018SQLRETURN SQL_API SQLGetEnvAttr (
1019 SQLHENV EnvironmentHandle,
1020 SQLINTEGER Attribute,
1021 SQLPOINTER Value,
1022 SQLINTEGER BufferLength,
1023 SQLINTEGER * StringLength);
1024#endif /* ODBCVER >= 0x0300 */
720
1025
721 SQLRETURN SQL_API SQLGetFunctions(SQLHDBC ConnectionHandle,
722 SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported);
1026SQLRETURN SQL_API SQLGetFunctions (
1027 SQLHDBC ConnectionHandle,
1028 SQLUSMALLINT FunctionId,
1029 SQLUSMALLINT * Supported);
723
1030
724 SQLRETURN SQL_API SQLGetInfo(SQLHDBC ConnectionHandle,
725 SQLUSMALLINT InfoType, SQLPOINTER InfoValue,
726 SQLSMALLINT BufferLength, SQLSMALLINT *StringLength);
1031SQLRETURN SQL_API SQLGetInfo (
1032 SQLHDBC ConnectionHandle,
1033 SQLUSMALLINT InfoType,
1034 SQLPOINTER InfoValue,
1035 SQLSMALLINT BufferLength,
1036 SQLSMALLINT * StringLength);
727
728#if (ODBCVER >= 0x0300)
1037
1038#if (ODBCVER >= 0x0300)
729 SQLRETURN SQL_API SQLGetStmtAttr(SQLHSTMT StatementHandle,
730 SQLINTEGER Attribute, SQLPOINTER Value,
731 SQLINTEGER BufferLength, SQLINTEGER *StringLength);
732#endif /* ODBCVER >= 0x0300 */
1039SQLRETURN SQL_API SQLGetStmtAttr (
1040 SQLHSTMT StatementHandle,
1041 SQLINTEGER Attribute,
1042 SQLPOINTER Value,
1043 SQLINTEGER BufferLength,
1044 SQLINTEGER * StringLength);
1045#endif /* ODBCVER >= 0x0300 */
733
1046
734 SQLRETURN SQL_API SQLGetStmtOption(SQLHSTMT StatementHandle,
735 SQLUSMALLINT Option, SQLPOINTER Value);
1047SQLRETURN SQL_API SQLGetStmtOption (
1048 SQLHSTMT StatementHandle,
1049 SQLUSMALLINT Option,
1050 SQLPOINTER Value);
736
1051
737 SQLRETURN SQL_API SQLGetTypeInfo(SQLHSTMT StatementHandle,
738 SQLSMALLINT DataType);
1052SQLRETURN SQL_API SQLGetTypeInfo (
1053 SQLHSTMT StatementHandle,
1054 SQLSMALLINT DataType);
739
1055
740 SQLRETURN SQL_API SQLNumResultCols(SQLHSTMT StatementHandle,
741 SQLSMALLINT *ColumnCount);
1056SQLRETURN SQL_API SQLNumResultCols (
1057 SQLHSTMT StatementHandle,
1058 SQLSMALLINT * ColumnCount);
742
1059
743 SQLRETURN SQL_API SQLParamData(SQLHSTMT StatementHandle,
744 SQLPOINTER *Value);
1060SQLRETURN SQL_API SQLParamData (
1061 SQLHSTMT StatementHandle,
1062 SQLPOINTER * Value);
745
1063
746 SQLRETURN SQL_API SQLPrepare(SQLHSTMT StatementHandle,
747 SQLCHAR *StatementText, SQLINTEGER TextLength);
1064SQLRETURN SQL_API SQLPrepare (
1065 SQLHSTMT StatementHandle,
1066 SQLCHAR * StatementText,
1067 SQLINTEGER TextLength);
748
1068
749 SQLRETURN SQL_API SQLPutData(SQLHSTMT StatementHandle,
750 SQLPOINTER Data, SQLLEN StrLen_or_Ind);
1069SQLRETURN SQL_API SQLPutData (
1070 SQLHSTMT StatementHandle,
1071 SQLPOINTER Data,
1072 SQLLEN StrLen_or_Ind);
751
1073
752 SQLRETURN SQL_API SQLRowCount(SQLHSTMT StatementHandle,
753 SQLLEN *RowCount);
1074SQLRETURN SQL_API SQLRowCount (
1075 SQLHSTMT StatementHandle,
1076 SQLLEN * RowCount);
754
755#if (ODBCVER >= 0x0300)
1077
1078#if (ODBCVER >= 0x0300)
756 SQLRETURN SQL_API SQLSetConnectAttr(SQLHDBC ConnectionHandle,
757 SQLINTEGER Attribute, SQLPOINTER Value,
758 SQLINTEGER StringLength);
1079SQLRETURN SQL_API SQLSetConnectAttr (
1080 SQLHDBC ConnectionHandle,
1081 SQLINTEGER Attribute,
1082 SQLPOINTER Value,
1083 SQLINTEGER StringLength);
759#endif /* ODBCVER >= 0x0300 */
760
1084#endif /* ODBCVER >= 0x0300 */
1085
761 SQLRETURN SQL_API SQLSetConnectOption(SQLHDBC ConnectionHandle,
762 SQLUSMALLINT Option, SQLULEN Value);
1086SQLRETURN SQL_API SQLSetConnectOption (
1087 SQLHDBC ConnectionHandle,
1088 SQLUSMALLINT Option,
1089 SQLULEN Value);
763
1090
764 SQLRETURN SQL_API SQLSetCursorName(SQLHSTMT StatementHandle,
765 SQLCHAR *CursorName, SQLSMALLINT NameLength);
1091SQLRETURN SQL_API SQLSetCursorName (
1092 SQLHSTMT StatementHandle,
1093 SQLCHAR * CursorName,
1094 SQLSMALLINT NameLength);
766
767#if (ODBCVER >= 0x0300)
1095
1096#if (ODBCVER >= 0x0300)
768 SQLRETURN SQL_API SQLSetDescField(SQLHDESC DescriptorHandle,
769 SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
770 SQLPOINTER Value, SQLINTEGER BufferLength);
1097SQLRETURN SQL_API SQLSetDescField (
1098 SQLHDESC DescriptorHandle,
1099 SQLSMALLINT RecNumber,
1100 SQLSMALLINT FieldIdentifier,
1101 SQLPOINTER Value,
1102 SQLINTEGER BufferLength);
771
1103
772 SQLRETURN SQL_API SQLSetDescRec(SQLHDESC DescriptorHandle,
773 SQLSMALLINT RecNumber, SQLSMALLINT Type,
774 SQLSMALLINT SubType, SQLLEN Length,
775 SQLSMALLINT Precision, SQLSMALLINT Scale,
776 SQLPOINTER Data, SQLLEN *StringLength,
777 SQLLEN *Indicator);
1104SQLRETURN SQL_API SQLSetDescRec (
1105 SQLHDESC DescriptorHandle,
1106 SQLSMALLINT RecNumber,
1107 SQLSMALLINT Type,
1108 SQLSMALLINT SubType,
1109 SQLLEN Length,
1110 SQLSMALLINT Precision,
1111 SQLSMALLINT Scale,
1112 SQLPOINTER Data,
1113 SQLLEN * StringLength,
1114 SQLLEN * Indicator);
778
1115
779 SQLRETURN SQL_API SQLSetEnvAttr(SQLHENV EnvironmentHandle,
780 SQLINTEGER Attribute, SQLPOINTER Value,
781 SQLINTEGER StringLength);
1116SQLRETURN SQL_API SQLSetEnvAttr (
1117 SQLHENV EnvironmentHandle,
1118 SQLINTEGER Attribute,
1119 SQLPOINTER Value,
1120 SQLINTEGER StringLength);
782#endif /* ODBCVER >= 0x0300 */
783
1121#endif /* ODBCVER >= 0x0300 */
1122
784 SQLRETURN SQL_API SQLSetParam(SQLHSTMT StatementHandle,
785 SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType,
786 SQLSMALLINT ParameterType, SQLULEN LengthPrecision,
787 SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue,
788 SQLLEN *StrLen_or_Ind);
789
790#if (ODBCVER >= 0x0300)
1123
1124#if (ODBCVER >= 0x0300)
791 SQLRETURN SQL_API SQLSetStmtAttr(SQLHSTMT StatementHandle,
792 SQLINTEGER Attribute, SQLPOINTER Value,
793 SQLINTEGER StringLength);
1125SQLRETURN SQL_API SQLSetStmtAttr (
1126 SQLHSTMT StatementHandle,
1127 SQLINTEGER Attribute,
1128 SQLPOINTER Value,
1129 SQLINTEGER StringLength);
794#endif
795
1130#endif
1131
796 SQLRETURN SQL_API SQLSetStmtOption(SQLHSTMT StatementHandle,
797 SQLUSMALLINT Option, SQLULEN Value);
1132SQLRETURN SQL_API SQLSetStmtOption (
1133 SQLHSTMT StatementHandle,
1134 SQLUSMALLINT Option,
1135 SQLULEN Value);
798
1136
799 SQLRETURN SQL_API SQLSpecialColumns(SQLHSTMT StatementHandle,
800 SQLUSMALLINT IdentifierType, SQLCHAR *CatalogName,
801 SQLSMALLINT NameLength1, SQLCHAR *SchemaName,
802 SQLSMALLINT NameLength2, SQLCHAR *TableName,
803 SQLSMALLINT NameLength3, SQLUSMALLINT Scope,
804 SQLUSMALLINT Nullable);
1137SQLRETURN SQL_API SQLSpecialColumns (
1138 SQLHSTMT StatementHandle,
1139 SQLUSMALLINT IdentifierType,
1140 SQLCHAR * CatalogName,
1141 SQLSMALLINT NameLength1,
1142 SQLCHAR * SchemaName,
1143 SQLSMALLINT NameLength2,
1144 SQLCHAR * TableName,
1145 SQLSMALLINT NameLength3,
1146 SQLUSMALLINT Scope,
1147 SQLUSMALLINT Nullable);
805
1148
806 SQLRETURN SQL_API SQLStatistics(SQLHSTMT StatementHandle,
807 SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
808 SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
809 SQLCHAR *TableName, SQLSMALLINT NameLength3,
810 SQLUSMALLINT Unique, SQLUSMALLINT Reserved);
1149SQLRETURN SQL_API SQLStatistics (
1150 SQLHSTMT StatementHandle,
1151 SQLCHAR * CatalogName,
1152 SQLSMALLINT NameLength1,
1153 SQLCHAR * SchemaName,
1154 SQLSMALLINT NameLength2,
1155 SQLCHAR * TableName,
1156 SQLSMALLINT NameLength3,
1157 SQLUSMALLINT Unique,
1158 SQLUSMALLINT Reserved);
811
1159
812 SQLRETURN SQL_API SQLTables(SQLHSTMT StatementHandle,
813 SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
814 SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
815 SQLCHAR *TableName, SQLSMALLINT NameLength3,
816 SQLCHAR *TableType, SQLSMALLINT NameLength4);
1160SQLRETURN SQL_API SQLTables (
1161 SQLHSTMT StatementHandle,
1162 SQLCHAR * CatalogName,
1163 SQLSMALLINT NameLength1,
1164 SQLCHAR * SchemaName,
1165 SQLSMALLINT NameLength2,
1166 SQLCHAR * TableName,
1167 SQLSMALLINT NameLength3,
1168 SQLCHAR * TableType,
1169 SQLSMALLINT NameLength4);
817
1170
818 SQLRETURN SQL_API SQLTransact(SQLHENV EnvironmentHandle,
819 SQLHDBC ConnectionHandle, SQLUSMALLINT CompletionType);
1171SQLRETURN SQL_API SQLTransact (
1172 SQLHENV EnvironmentHandle,
1173 SQLHDBC ConnectionHandle,
1174 SQLUSMALLINT CompletionType);
820
1175
1176
1177/*
1178 * Depreciated ODBC 1.0 function - Use SQLBindParameter
1179 */
1180SQLRETURN SQL_API SQLSetParam (
1181 SQLHSTMT StatementHandle,
1182 SQLUSMALLINT ParameterNumber,
1183 SQLSMALLINT ValueType,
1184 SQLSMALLINT ParameterType,
1185 SQLULEN LengthPrecision,
1186 SQLSMALLINT ParameterScale,
1187 SQLPOINTER ParameterValue,
1188 SQLLEN * StrLen_or_Ind);
1189
821#ifdef __cplusplus
822}
823#endif
1190#ifdef __cplusplus
1191}
1192#endif
824#endif
1193
1194#endif /* _SQL_H */