1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
|
/*****************************************************************
** SQLEXT.H - This is the include for applications using
** the Microsoft SQL Extensions
**
** (C) Copyright 1990 - 1995 By Microsoft Corp.
**
** Updated 5/12/93 for 2.00 specification
** Updated 5/23/94 for 2.01 specification
** Updated 10/27/94 for 2.10 specification
** Updated 04/10/95 for 2.50 specification
*********************************************************************/
#ifndef __SQLEXT
#define __SQLEXT
#ifndef __SQL
#include "sql.h"
#endif
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
/* SQLBindParameter extensions */
#if (ODBCVER >= 0x0200)
#define SQL_DEFAULT_PARAM (-5)
#define SQL_IGNORE (-6)
#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
#define SQL_LEN_DATA_AT_EXEC(length) (-length+SQL_LEN_DATA_AT_EXEC_OFFSET)
#endif /* ODBCVER >= 0x0200 */
/* Defines for SQLSetPos */
#define SQL_ENTIRE_ROWSET 0
/* Operations in SQLSetPos */
#define SQL_POSITION 0 /* 1.0 FALSE */
#define SQL_REFRESH 1 /* 1.0 TRUE */
#if (ODBCVER >= 0x0200)
#define SQL_UPDATE 2
#define SQL_DELETE 3
#define SQL_ADD 4
#endif /* ODBCVER >= 0x0200 */
/* Lock options in SQLSetPos */
#define SQL_LOCK_NO_CHANGE 0 /* 1.0 FALSE */
#define SQL_LOCK_EXCLUSIVE 1 /* 1.0 TRUE */
#if (ODBCVER >= 0x0200)
#define SQL_LOCK_UNLOCK 2
/* Macros for SQLSetPos */
#define SQL_POSITION_TO(hstmt,irow) SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
#define SQL_LOCK_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
#define SQL_REFRESH_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
#define SQL_UPDATE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
#define SQL_DELETE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
#define SQL_ADD_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
#endif /* ODBCVER >= 0x0200 */
/* Level 1 Prototypes */
/* Options for SQLDriverConnect */
#define SQL_DRIVER_NOPROMPT 0
#define SQL_DRIVER_COMPLETE 1
#define SQL_DRIVER_PROMPT 2
#define SQL_DRIVER_COMPLETE_REQUIRED 3
#ifndef RC_INVOKED
SQLRETURN SQL_API SQLDriverConnect(
SQLHDBC hdbc,
SQLHWND hwnd,
SQLCHAR FAR *szConnStrIn,
SQLSMALLINT cbConnStrIn,
SQLCHAR FAR *szConnStrOut,
SQLSMALLINT cbConnStrOutMax,
SQLSMALLINT FAR *pcbConnStrOut,
SQLUSMALLINT fDriverCompletion);
#endif /* RC_INVOKED */
/* Level 2 Functions */
/* SQLExtendedFetch "fFetchType" values */
#ifndef SQL_FETCH_NEXT
#define SQL_FETCH_NEXT 1
#endif
#ifndef SQL_FETCH_FIRST
#define SQL_FETCH_FIRST 2
#endif
#define SQL_FETCH_LAST 3
#define SQL_FETCH_PRIOR 4
#define SQL_FETCH_ABSOLUTE 5
#define SQL_FETCH_RELATIVE 6
#if (ODBCVER >= 0x0200)
#define SQL_FETCH_BOOKMARK 8
#endif /* ODBCVER >= 0x0200 */
/* SQLExtendedFetch "rgfRowStatus" element values */
#define SQL_ROW_SUCCESS 0
#define SQL_ROW_DELETED 1
#define SQL_ROW_UPDATED 2
#define SQL_ROW_NOROW 3
#if (ODBCVER >= 0x0200)
#define SQL_ROW_ADDED 4
#define SQL_ROW_ERROR 5
#endif /* ODBCVER >= 0x0200 */
/* Defines for SQLForeignKeys (returned in result set) */
#define SQL_CASCADE 0
#define SQL_RESTRICT 1
#define SQL_SET_NULL 2
#if (ODBCVER >= 0x0250)
#define SQL_NO_ACTION 3
#define SQL_SET_DEFAULT 4
#endif
/* Defines for SQLBindParameter and
SQLProcedureColumns (returned in the result set) */
#define SQL_PARAM_TYPE_UNKNOWN 0
#define SQL_PARAM_INPUT 1
#define SQL_PARAM_INPUT_OUTPUT 2
#define SQL_RESULT_COL 3
#if (ODBCVER >= 0x0200)
#define SQL_PARAM_OUTPUT 4
#define SQL_RETURN_VALUE 5
#endif /* ODBCVER >= 0x0200 */
#if (ODBCVER >= 0x0200)
/* Defines for SQLProcedures (returned in the result set) */
#define SQL_PT_UNKNOWN 0
#define SQL_PT_PROCEDURE 1
#define SQL_PT_FUNCTION 2
#endif /* ODBCVER >= 0x0200 */
/* Defines used by Driver Manager when mapping SQLSetParam to SQLBindParameter
*/
#define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT
#define SQL_SETPARAM_VALUE_MAX (-1L)
#ifndef RC_INVOKED
/* Level 2 Prototypes */
SQLRETURN SQL_API SQLBrowseConnect(
SQLHDBC hdbc,
SQLCHAR FAR *szConnStrIn,
SQLSMALLINT cbConnStrIn,
SQLCHAR FAR *szConnStrOut,
SQLSMALLINT cbConnStrOutMax,
SQLSMALLINT FAR *pcbConnStrOut);
SQLRETURN SQL_API SQLColumnPrivileges(
SQLHSTMT hstmt,
SQLCHAR FAR *szCatalogName,
SQLSMALLINT cbCatalogName,
SQLCHAR FAR *szSchemaName,
SQLSMALLINT cbSchemaName,
SQLCHAR FAR *szTableName,
SQLSMALLINT cbTableName,
SQLCHAR FAR *szColumnName,
SQLSMALLINT cbColumnName);
SQLRETURN SQL_API SQLDescribeParam(
SQLHSTMT hstmt,
SQLUSMALLINT ipar,
SQLSMALLINT FAR *pfSqlType,
SQLUINTEGER FAR *pcbParamDef,
SQLSMALLINT FAR *pibScale,
SQLSMALLINT FAR *pfNullable);
SQLRETURN SQL_API SQLExtendedFetch(
SQLHSTMT hstmt,
SQLUSMALLINT fFetchType,
SQLINTEGER irow,
SQLUINTEGER FAR *pcrow,
SQLUSMALLINT FAR *rgfRowStatus);
SQLRETURN SQL_API SQLForeignKeys(
SQLHSTMT hstmt,
SQLCHAR FAR *szPkCatalogName,
SQLSMALLINT cbPkCatalogName,
SQLCHAR FAR *szPkSchemaName,
SQLSMALLINT cbPkSchemaName,
SQLCHAR FAR *szPkTableName,
SQLSMALLINT cbPkTableName,
SQLCHAR FAR *szFkCatalogName,
SQLSMALLINT cbFkCatalogName,
SQLCHAR FAR *szFkSchemaName,
SQLSMALLINT cbFkSchemaName,
SQLCHAR FAR *szFkTableName,
SQLSMALLINT cbFkTableName);
SQLRETURN SQL_API SQLMoreResults(
SQLHSTMT hstmt);
SQLRETURN SQL_API SQLNativeSql(
SQLHDBC hdbc,
SQLCHAR FAR *szSqlStrIn,
SQLINTEGER cbSqlStrIn,
SQLCHAR FAR *szSqlStr,
SQLINTEGER cbSqlStrMax,
SQLINTEGER FAR *pcbSqlStr);
SQLRETURN SQL_API SQLNumParams(
SQLHSTMT hstmt,
SQLSMALLINT FAR *pcpar);
SQLRETURN SQL_API SQLParamOptions(
SQLHSTMT hstmt,
SQLUINTEGER crow,
SQLUINTEGER FAR *pirow);
SQLRETURN SQL_API SQLPrimaryKeys(
SQLHSTMT hstmt,
SQLCHAR FAR *szCatalogName,
SQLSMALLINT cbCatalogName,
SQLCHAR FAR *szSchemaName,
SQLSMALLINT cbSchemaName,
SQLCHAR FAR *szTableName,
SQLSMALLINT cbTableName);
SQLRETURN SQL_API SQLProcedureColumns(
SQLHSTMT hstmt,
SQLCHAR FAR *szCatalogName,
SQLSMALLINT cbCatalogName,
SQLCHAR FAR *szSchemaName,
SQLSMALLINT cbSchemaName,
SQLCHAR FAR *szProcName,
SQLSMALLINT cbProcName,
SQLCHAR FAR *szColumnName,
SQLSMALLINT cbColumnName);
SQLRETURN SQL_API SQLProcedures(
SQLHSTMT hstmt,
SQLCHAR FAR *szCatalogName,
SQLSMALLINT cbCatalogName,
SQLCHAR FAR *szSchemaName,
SQLSMALLINT cbSchemaName,
SQLCHAR FAR *szProcName,
SQLSMALLINT cbProcName);
SQLRETURN SQL_API SQLSetPos(
SQLHSTMT hstmt,
SQLUSMALLINT irow,
SQLUSMALLINT fOption,
SQLUSMALLINT fLock);
SQLRETURN SQL_API SQLTablePrivileges(
SQLHSTMT hstmt,
SQLCHAR FAR *szCatalogName,
SQLSMALLINT cbCatalogName,
SQLCHAR FAR *szSchemaName,
SQLSMALLINT cbSchemaName,
SQLCHAR FAR *szTableName,
SQLSMALLINT cbTableName);
/* SDK 2.0 Additions */
#if (ODBCVER >= 0x0200)
SQLRETURN SQL_API SQLDrivers(
SQLHENV henv,
SQLUSMALLINT fDirection,
SQLCHAR FAR *szDriverDesc,
SQLSMALLINT cbDriverDescMax,
SQLSMALLINT FAR *pcbDriverDesc,
SQLCHAR FAR *szDriverAttributes,
SQLSMALLINT cbDrvrAttrMax,
SQLSMALLINT FAR *pcbDrvrAttr);
SQLRETURN SQL_API SQLBindParameter(
SQLHSTMT hstmt,
SQLUSMALLINT ipar,
SQLSMALLINT fParamType,
SQLSMALLINT fCType,
SQLSMALLINT fSqlType,
SQLUINTEGER cbColDef,
SQLSMALLINT ibScale,
SQLPOINTER rgbValue,
SQLINTEGER cbValueMax,
SQLINTEGER FAR *pcbValue);
#endif /* ODBCVER >= 0x0200 */
#endif /* RC_INVOKED */
#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */
#endif /* __SQLEXT */
|