forked from IBM/node-odbc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdynodbc.h
383 lines (327 loc) · 11.3 KB
/
dynodbc.h
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
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
#ifndef _SRC_DYNODBC_H_
#define _SRC_DYNODBC_H_
#ifdef dynodbc
#ifdef _WIN32
#include <windows.h>
#endif
#include <sql.h>
#include <sqlext.h>
typedef RETCODE (SQL_API * pfnSQLGetData)(
SQLHSTMT StatementHandle,
SQLUSMALLINT Col_or_Param_Num,
SQLSMALLINT TargetType,
SQLPOINTER TargetValuePtr,
SQLLEN BufferLength,
SQLLEN * StrLen_or_IndPtr);
typedef RETCODE (SQL_API * pfnSQLGetFunctions)(
HDBC ConnectionHandle,
SQLUSMALLINT FunctionId,
SQLUSMALLINT * SupportedPtr);
typedef RETCODE (SQL_API * pfnSQLAllocConnect)(
HENV henv,
HDBC FAR *phdbc);
typedef RETCODE (SQL_API * pfnSQLAllocEnv)(
HENV FAR *phenv);
typedef RETCODE (SQL_API * pfnSQLAllocStmt)(
HDBC hdbc,
HSTMT FAR *phstmt);
typedef RETCODE (SQL_API * pfnSQLBindCol)(
HSTMT hstmt,
UWORD icol,
SWORD fCType,
PTR rgbValue,
SDWORD cbValueMax,
SDWORD FAR *pcbValue);
typedef RETCODE (SQL_API * pfnSQLCancel)(
HSTMT hstmt);
typedef RETCODE (SQL_API * pfnSQLColAttributes)(
HSTMT hstmt,
UWORD icol,
UWORD fDescType,
PTR rgbDesc,
SWORD cbDescMax,
SWORD FAR *pcbDesc,
SDWORD FAR *pfDesc);
typedef RETCODE (SQL_API * pfnSQLColAttribute)(
SQLHSTMT StatementHandle,
SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier,
SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength,
SQLSMALLINT *StringLength, SQLPOINTER NumericAttribute);
typedef RETCODE (SQL_API * pfnSQLSetConnectAttr)(
SQLHDBC ConnectionHandle,
SQLINTEGER Attribute, SQLPOINTER Value,
SQLINTEGER StringLength);
typedef RETCODE (SQL_API * pfnSQLDriverConnect)(
SQLHDBC hdbc,
SQLHWND hwnd,
SQLTCHAR *szConnStrIn,
SQLSMALLINT cbConnStrIn,
SQLTCHAR *szConnStrOut,
SQLSMALLINT cbConnStrOutMax,
SQLSMALLINT *pcbConnStrOut,
SQLUSMALLINT fDriverCompletion);
typedef RETCODE (SQL_API * pfnSQLAllocHandle)(
SQLSMALLINT HandleType,
SQLHANDLE InputHandle, SQLHANDLE *OutputHandle);
typedef RETCODE (SQL_API * pfnSQLRowCount)(
SQLHSTMT StatementHandle,
SQLLEN *RowCount);
typedef RETCODE (SQL_API * pfnSQLNumResultCols)(
SQLHSTMT StatementHandle,
SQLSMALLINT *ColumnCount);
typedef RETCODE (SQL_API * pfnSQLEndTran)(
SQLSMALLINT HandleType, SQLHANDLE Handle,
SQLSMALLINT CompletionType);
typedef RETCODE (SQL_API * pfnSQLExecDirect)(
SQLHSTMT StatementHandle,
SQLTCHAR *StatementText, SQLINTEGER TextLength);
typedef RETCODE (SQL_API * pfnSQLTables)(
SQLHSTMT StatementHandle,
SQLTCHAR *CatalogName, SQLSMALLINT NameLength1,
SQLTCHAR *SchemaName, SQLSMALLINT NameLength2,
SQLTCHAR *TableName, SQLSMALLINT NameLength3,
SQLTCHAR *TableType, SQLSMALLINT NameLength4);
typedef RETCODE (SQL_API * pfnSQLColumns)(
SQLHSTMT StatementHandle,
SQLTCHAR *CatalogName, SQLSMALLINT NameLength1,
SQLTCHAR *SchemaName, SQLSMALLINT NameLength2,
SQLTCHAR *TableName, SQLSMALLINT NameLength3,
SQLTCHAR *ColumnName, SQLSMALLINT NameLength4);
typedef RETCODE (SQL_API * pfnSQLBindParameter)(
SQLHSTMT hstmt,
SQLUSMALLINT ipar,
SQLSMALLINT fParamType,
SQLSMALLINT fCType,
SQLSMALLINT fSqlType,
SQLUINTEGER cbColDef,
SQLSMALLINT ibScale,
SQLPOINTER rgbValue,
SQLINTEGER cbValueMax,
SQLLEN *pcbValue);
typedef RETCODE (SQL_API * pfnSQLPrimaryKeys)(
SQLHSTMT hstmt,
SQLTCHAR *szCatalogName,
SQLSMALLINT cbCatalogName,
SQLTCHAR *szSchemaName,
SQLSMALLINT cbSchemaName,
SQLTCHAR *szTableName,
SQLSMALLINT cbTableName);
typedef RETCODE (SQL_API * pfnSQLSetEnvAttr)(
SQLHENV EnvironmentHandle,
SQLINTEGER Attribute, SQLPOINTER Value,
SQLINTEGER StringLength);
typedef RETCODE (SQL_API * pfnSQLConnect)(
HDBC hdbc,
UCHAR FAR *szDSN,
SWORD cbDSN,
UCHAR FAR *szUID,
SWORD cbUID,
UCHAR FAR *szAuthStr,
SWORD cbAuthStr);
typedef RETCODE (SQL_API * pfnSQLDescribeCol)(
HSTMT hstmt,
UWORD icol,
UCHAR FAR *szColName,
SWORD cbColNameMax,
SWORD FAR *pcbColName,
SWORD FAR *pfSqlType,
UDWORD FAR *pcbColDef,
SWORD FAR *pibScale,
SWORD FAR *pfNullable);
typedef RETCODE (SQL_API * pfnSQLDisconnect)(
HDBC hdbc);
typedef RETCODE (SQL_API * pfnSQLError)(
HENV henv,
HDBC hdbc,
HSTMT hstmt,
UCHAR FAR *szSqlState,
SDWORD FAR *pfNativeError,
UCHAR FAR *szErrorMsg,
SWORD cbErrorMsgMax,
SWORD FAR *pcbErrorMsg);
/*typedef RETCODE (SQL_API * pfnSQLExecDirect)(
HSTMT hstmt,
UCHAR FAR *szSqlStr,
SDWORD cbSqlStr);
*/
typedef RETCODE (SQL_API * pfnSQLExecute)(
HSTMT hstmt);
typedef RETCODE (SQL_API * pfnSQLFetch)(
HSTMT hstmt);
typedef RETCODE (SQL_API * pfnSQLGetDiagRec)(
SQLSMALLINT HandleType, SQLHANDLE Handle,
SQLSMALLINT RecNumber, SQLTCHAR *Sqlstate,
SQLINTEGER *NativeError, SQLTCHAR *MessageText,
SQLSMALLINT BufferLength, SQLSMALLINT *TextLength);
typedef RETCODE (SQL_API * pfnSQLGetDiagField)(
SQLSMALLINT HandleType, SQLHANDLE Handle,
SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier,
SQLPOINTER DiagInfoPtr, SQLSMALLINT BufferLength,
SQLSMALLINT *StringLengthPtr);
typedef RETCODE (SQL_API * pfnSQLFreeHandle)(
SQLSMALLINT HandleType, SQLHANDLE Handle);
typedef RETCODE (SQL_API * pfnSQLFetchScroll)(
SQLHSTMT StatementHandle,
SQLSMALLINT FetchOrientation, SQLINTEGER FetchOffset);
typedef RETCODE (SQL_API * pfnSQLColAttribute)(
SQLHSTMT StatementHandle,
SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier,
SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength,
SQLSMALLINT *StringLength, SQLPOINTER NumericAttribute);
typedef RETCODE (SQL_API * pfnSQLFreeConnect)(
HDBC hdbc);
typedef RETCODE (SQL_API * pfnSQLFreeEnv)(
HENV henv);
typedef RETCODE (SQL_API * pfnSQLFreeStmt)(
HSTMT hstmt,
UWORD fOption);
typedef RETCODE (SQL_API * pfnSQLGetCursorName)(
HSTMT hstmt,
UCHAR FAR *szCursor,
SWORD cbCursorMax,
SWORD FAR *pcbCursor);
typedef RETCODE (SQL_API * pfnSQLNumResultCols)(
HSTMT hstmt,
SWORD FAR *pccol);
typedef RETCODE (SQL_API * pfnSQLPrepare)(
SQLHSTMT StatementHandle,
SQLTCHAR *StatementText,
SQLINTEGER TextLength);
// HSTMT hstmt,
// UCHAR FAR *szSqlStr,
// SDWORD cbSqlStr);
typedef RETCODE (SQL_API * pfnSQLRowCount)(
HSTMT hstmt,
SQLLEN FAR *pcrow);
typedef RETCODE (SQL_API * pfnSQLSetCursorName)(
HSTMT hstmt,
UCHAR FAR *szCursor,
SWORD cbCursor);
typedef RETCODE (SQL_API * pfnSQLTransact)(
HENV henv,
HDBC hdbc,
UWORD fType);
typedef RETCODE (SQL_API * pfnSQLSetConnectOption)(
HDBC hdbc,
UWORD fOption,
UDWORD vParam);
typedef RETCODE (SQL_API * pfnSQLDrivers)(
HENV henv,
UWORD fDirection,
UCHAR FAR *szDriverDesc,
SWORD cbDriverDescMax,
SWORD FAR *pcbDriverDesc,
UCHAR FAR *szDriverAttributes,
SWORD cbDrvrAttrMax,
SWORD FAR *pcbDrvrAttr);
// typedef RETCODE (SQL_API * pfnSQLBindParameter)(
// HSTMT hstmt,
// UWORD ipar,
// SWORD fParamType,
// SWORD fCType,
// SWORD fSqlType,
// UDWORD cbColDef,
// SWORD ibScale,
// PTR rgbValue,
// SDWORD cbValueMax,
// SDWORD FAR *pcbValue);
typedef RETCODE (SQL_API * pfnSQLDataSources)(
HENV henv,
UWORD fDirection,
UCHAR FAR *szDSN,
SWORD cbDSNMax,
SWORD FAR *pcbDSN,
UCHAR FAR *szDescription,
SWORD cbDescriptionMax,
SWORD FAR *pcbDescription);
typedef RETCODE (SQL_API * pfnSQLGetInfo)(
HDBC hdbc,
UWORD fInfoType,
PTR rgbInfoValue,
SWORD cbInfoValueMax,
SWORD FAR *pcbInfoValue);
typedef RETCODE (SQL_API * pfnSQLMoreResults)(
HSTMT hstmt);
extern pfnSQLGetData pSQLGetData;
extern pfnSQLGetFunctions pSQLGetFunctions;
extern pfnSQLAllocConnect pSQLAllocConnect;
extern pfnSQLAllocEnv pSQLAllocEnv;
extern pfnSQLAllocStmt pSQLAllocStmt;
extern pfnSQLBindCol pSQLBindCol;
extern pfnSQLCancel pSQLCancel;
extern pfnSQLColAttributes pSQLColAttributes;
extern pfnSQLConnect pSQLConnect;
extern pfnSQLDescribeCol pSQLDescribeCol;
extern pfnSQLDisconnect pSQLDisconnect;
extern pfnSQLError pSQLError;
extern pfnSQLExecDirect pSQLExecDirect;
extern pfnSQLExecute pSQLExecute;
extern pfnSQLFetch pSQLFetch;
extern pfnSQLGetDiagRec pSQLGetDiagRec;
extern pfnSQLGetDiagField pSQLGetDiagField;
extern pfnSQLFreeHandle pSQLFreeHandle;
extern pfnSQLFetchScroll pSQLFetchScroll;
extern pfnSQLFetchScroll pSQLFetchScroll;
extern pfnSQLColAttribute pSQLColAttribute;
extern pfnSQLSetConnectAttr pSQLSetConnectAttr;
extern pfnSQLDriverConnect pSQLDriverConnect;
extern pfnSQLAllocHandle pSQLAllocHandle;
extern pfnSQLRowCount pSQLRowCount;
extern pfnSQLNumResultCols pSQLNumResultCols;
extern pfnSQLEndTran pSQLEndTran;
//extern pfnSQLExecDirect pSQLExecDirect;
extern pfnSQLTables pSQLTables;
extern pfnSQLColumns pSQLColumns;
// extern pfnSQLBindParameter pSQLBindParameter;
extern pfnSQLPrimaryKeys pSQLPrimaryKeys;
extern pfnSQLSetEnvAttr pSQLSetEnvAttr;
extern pfnSQLFreeConnect pSQLFreeConnect;
extern pfnSQLFreeEnv pSQLFreeEnv;
extern pfnSQLFreeStmt pSQLFreeStmt;
extern pfnSQLGetCursorName pSQLGetCursorName;
extern pfnSQLNumResultCols pSQLNumResultCols;
extern pfnSQLPrepare pSQLPrepare;
extern pfnSQLRowCount pSQLRowCount;
extern pfnSQLSetCursorName pSQLSetCursorName;
extern pfnSQLTransact pSQLTransact;
extern pfnSQLSetConnectOption pSQLSetConnectOption;
extern pfnSQLDrivers pSQLDrivers;
extern pfnSQLDataSources pSQLDataSources;
extern pfnSQLBindParameter pSQLBindParameter;
extern pfnSQLGetInfo pSQLGetInfo;
extern pfnSQLMoreResults pSQLMoreResults;
BOOL DynLoadODBC( char* odbcModuleName );
#define SQLAllocEnv pSQLAllocEnv
#define SQLAllocConnect pSQLAllocConnect
#define SQLSetConnectOption pSQLSetConnectOption
#define SQLAllocStmt pSQLAllocStmt
#define SQLGetFunctions pSQLGetFunctions
#define SQLError pSQLError
#define SQLGetData pSQLGetData
#define SQLMoreResults pSQLMoreResults
#define SQLPrepare pSQLPrepare
#define SQLExecute pSQLExecute
#define SQLGetDiagRec pSQLGetDiagRec
#define SQLGetDiagField pSQLGetDiagField
#define SQLFreeHandle pSQLFreeHandle
#define SQLFreeStmt pSQLFreeStmt
#define SQLFetchScroll pSQLFetchScroll
#define SQLFetch pSQLFetch
#define SQLBindCol pSQLBindCol
#define SQLColAttribute pSQLColAttribute
#define SQLGetInfo pSQLGetInfo
#define SQLDriverConnect pSQLDriverConnect
#define SQLAllocHandle pSQLAllocHandle
#define SQLDisconnect pSQLDisconnect
#define SQLRowCount pSQLRowCount
#define SQLNumResultCols pSQLNumResultCols
#define SQLSetConnectAttr pSQLSetConnectAttr
#define SQLEndTran pSQLEndTran
#define SQLExecDirect pSQLExecDirect
#define SQLTables pSQLTables
#define SQLColumns pSQLColumns
#define SQLBindParameter pSQLBindParameter
#define SQLPrimaryKeys pSQLPrimaryKeys
#define SQLSetEnvAttr pSQLSetEnvAttr
#endif
#endif // _SRC_DYNODBC_H_