dmpython 2.5.26__cp38-cp38-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
dpi/DPI.h ADDED
@@ -0,0 +1,1506 @@
1
+ //-----------------------------------------------------------------------------
2
+ // File: DPI.h
3
+ //
4
+ // Contents: This is the the main include for DM API programing.
5
+ //
6
+ // Comments: preconditions: NONE
7
+ //
8
+ //-----------------------------------------------------------------------------
9
+
10
+ #ifndef _DPI_H
11
+ #define _DPI_H
12
+
13
+ /*
14
+ * DPIVER DPI version number (0x0101).
15
+ */
16
+ #ifndef DPIVER
17
+ #define DPIVER 0x0101
18
+ #endif
19
+
20
+ #ifndef __DPITYPES
21
+ #include "DPItypes.h"
22
+ #endif
23
+
24
+ #ifdef __cplusplus
25
+ extern "C" { /* Assume C declarations for C++ */
26
+ #endif /* __cplusplus */
27
+
28
+ #if defined (_WINDOWS) || defined (WIN32)
29
+ #ifndef DllImport
30
+ #define DllImport __declspec( dllimport )
31
+ #endif
32
+
33
+ #ifndef DllExport
34
+ #define DllExport __declspec( dllexport )
35
+ #endif
36
+ #else
37
+ #define DllImport
38
+ #define DllExport
39
+ #endif
40
+
41
+ /* special length/indicator values */
42
+ #define DSQL_NULL_DATA (-1)
43
+ #define DSQL_DATA_AT_EXEC (-2)
44
+ #define DSQL_DEFAULT_PARAM (-5)
45
+ #define DSQL_COLUMN_IGNORE (-6)
46
+
47
+ /* return values from functions */
48
+ #define DSQL_SUCCESS 0
49
+ #define DSQL_SUCCESS_WITH_INFO 1
50
+ #define DSQL_NO_DATA 100
51
+ #define DSQL_ERROR (-1)
52
+ #define DSQL_INVALID_HANDLE (-2)
53
+
54
+ #define DSQL_STILL_EXECUTING 2
55
+ #define DSQL_NEED_DATA 99
56
+ #define DSQL_PARAM_DATA_AVAILABLE 101
57
+
58
+ /* defines for diagnostics fields */
59
+ /* diagnose head field identifier */
60
+ #define DSQL_DIAG_NUMBER (1)
61
+ #define DSQL_DIAG_DYNAMIC_FUNCTION_CODE (2)
62
+ #define DSQL_DIAG_ROW_COUNT (3)
63
+ #define DSQL_DIAG_PRINT_INFO (4)
64
+ #define DSQL_DIAG_EXPLAIN (5)
65
+ #define DSQL_DIAG_ROWID (6)
66
+ #define DSQL_DIAG_EXECID (7)
67
+ #define DSQL_DIAG_SERVER_STAT (8)
68
+
69
+ /* diagnose record field identifier*/
70
+ #define DSQL_DIAG_COLUMN_NUMBER (101)
71
+ #define DSQL_DIAG_MESSAGE_TEXT (102)
72
+ #define DSQL_DIAG_ERROR_CODE (103)
73
+ #define DSQL_DIAG_ROW_NUMBER (104)
74
+
75
+ //If dpi_row_count or diagnose cannot return exactly row count
76
+ #define DSQL_ROW_COUNT_UNKNOWN (-99)
77
+
78
+ /* test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO */
79
+ #define DSQL_SUCCEEDED(rc) (((rc)&(~1))==0)
80
+
81
+ /* flags for null-terminated string */
82
+ #define DSQL_NTS (-3)
83
+ #define DSQL_NTSL (-3L)
84
+
85
+ /* handle type identifiers */
86
+ #define DSQL_HANDLE_ENV 1
87
+ #define DSQL_HANDLE_DBC 2
88
+ #define DSQL_HANDLE_STMT 3
89
+ #define DSQL_HANDLE_DESC 4
90
+ #define DSQL_HANDLE_LOB_LOCATOR 5
91
+ #define DSQL_HANDLE_OBJECT 6
92
+ #define DSQL_HANDLE_OBJDESC 7
93
+ #define DSQL_HANDLE_BFILE 8
94
+
95
+ //DM C TYPE DEFINE
96
+ #define DSQL_C_TYPE_INVALID (-1000)
97
+ #define DSQL_C_NCHAR 0 //with NULL terminate
98
+ #define DSQL_C_SSHORT 1
99
+ #define DSQL_C_USHORT 2
100
+ #define DSQL_C_SLONG 3
101
+ #define DSQL_C_ULONG 4
102
+ #define DSQL_C_FLOAT 5
103
+ #define DSQL_C_DOUBLE 6
104
+ #define DSQL_C_BIT 7
105
+ #define DSQL_C_STINYINT 8
106
+ #define DSQL_C_UTINYINT 9
107
+ #define DSQL_C_SBIGINT 10
108
+ #define DSQL_C_UBIGINT 11
109
+ #define DSQL_C_BINARY 12
110
+ #define DSQL_C_DATE 13
111
+ #define DSQL_C_TIME 14
112
+ #define DSQL_C_TIMESTAMP 15
113
+ #define DSQL_C_NUMERIC 16
114
+ #define DSQL_C_INTERVAL_YEAR 17
115
+ #define DSQL_C_INTERVAL_MONTH 18
116
+ #define DSQL_C_INTERVAL_DAY 19
117
+ #define DSQL_C_INTERVAL_HOUR 20
118
+ #define DSQL_C_INTERVAL_MINUTE 21
119
+ #define DSQL_C_INTERVAL_SECOND 22
120
+ #define DSQL_C_INTERVAL_YEAR_TO_MONTH 23
121
+ #define DSQL_C_INTERVAL_DAY_TO_HOUR 24
122
+ #define DSQL_C_INTERVAL_DAY_TO_MINUTE 25
123
+ #define DSQL_C_INTERVAL_DAY_TO_SECOND 26
124
+ #define DSQL_C_INTERVAL_HOUR_TO_MINUTE 27
125
+ #define DSQL_C_INTERVAL_HOUR_TO_SECOND 28
126
+ #define DSQL_C_INTERVAL_MINUTE_TO_SECOND 29
127
+ #define DSQL_C_DEFAULT 30
128
+ #define DSQL_C_CLASS 31
129
+ #define DSQL_C_RECORD 32
130
+ #define DSQL_C_ARRAY 33
131
+ #define DSQL_C_SARRAY 34
132
+ #define DSQL_C_LOB_HANDLE 999
133
+ #define DSQL_C_RSET 1000
134
+ #define DSQL_C_WCHAR 1001
135
+ #define DSQL_C_BFILE 1002
136
+ #define DSQL_C_CHAR 1003 //without NULL terminate
137
+ #define DSQL_C_BOOLEAN DSQL_C_SLONG
138
+
139
+ #ifdef DM64
140
+ #define DSQL_C_BOOKMARK DSQL_C_UBIGINT
141
+ #else
142
+ #define DSQL_C_BOOKMARK DSQL_C_ULONG
143
+ #endif
144
+ #define DSQL_C_VARBOOKMARK DSQL_C_BINARY
145
+
146
+ #define DSQL_IS_CTYPE_INTERVAL(type) (DSQL_C_INTERVAL_YEAR <= (type) && (type) <= DSQL_C_INTERVAL_MINUTE_TO_SECOND)
147
+ #define DSQL_IS_CTYPE_INTERVAL_YM(type) (type == DSQL_C_INTERVAL_YEAR || type == DSQL_C_INTERVAL_MONTH || type == DSQL_C_INTERVAL_YEAR_TO_MONTH)
148
+ #define DSQL_IS_CTYPE_INTERVAL_DT(type) (DSQL_IS_CTYPE_INTERVAL(type) && !DSQL_IS_TYPE_INTERVAL_YM(type))
149
+ #define DSQL_IS_CTYPE_DATETIME(type) (DSQL_C_DATE <= type && type <= DSQL_C_TIMESTAMP)
150
+
151
+ //DM SERVER TYPE DEFINE
152
+ #define DSQL_CHAR 1 /* CHAR */
153
+ #define DSQL_VARCHAR 2 /* VARCHAR */
154
+ #define DSQL_BIT 3 /* BIT STRING */
155
+ #define DSQL_TINYINT 5 /* 1 byte INT */
156
+ #define DSQL_SMALLINT 6 /* SMALL INTEGER, 2 bytes */
157
+ #define DSQL_INT 7 /* INTEGER 4 bytes */
158
+ #define DSQL_BIGINT 8 /* INTEGER 8 bytes */
159
+ #define DSQL_DEC 9 /* DECIMAL */
160
+ #define DSQL_FLOAT 10 /* FLOAT, SINGLE */
161
+ #define DSQL_DOUBLE 11 /* DOUBLE */
162
+ #define DSQL_BLOB 12 /* BINARY LARGE OBJECT */
163
+ #define DSQL_BOOLEAN 13 /* BOOLEAN */
164
+ #define DSQL_DATE 14 /* DATE*/
165
+ #define DSQL_TIME 15 /* TIME*/
166
+ #define DSQL_TIMESTAMP 16 /* DATE TIME */
167
+ #define DSQL_BINARY 17 /* BINARY */
168
+ #define DSQL_VARBINARY 18 /* VAR BINARY */
169
+ #define DSQL_CLOB 19 /* TEXT */
170
+ #define DSQL_TIME_TZ 22 /* TIME WITH TIME ZONE*/
171
+ #define DSQL_TIMESTAMP_TZ 23 /* TIMESTAMP WITH TIME ZONE*/
172
+ #define DSQL_CLASS 24
173
+ #define DSQL_RECORD 25
174
+ #define DSQL_ARRAY 26
175
+ #define DSQL_SARRAY 27
176
+ #define DSQL_ROWID 28 /* ROWID*/
177
+ #define DSQL_RSET 119 /* RESULT SET*/
178
+ #define DSQL_BFILE 1000 /* BFILE*/
179
+
180
+ #define DSQL_INTERVAL_TYPE_BASE 100
181
+ #define DSQL_INTERVAL_TYPE_END 112
182
+ #define DSQL_INTERVAL_YEAR DSQL_INTERVAL_TYPE_BASE
183
+ #define DSQL_INTERVAL_MONTH (DSQL_INTERVAL_TYPE_BASE + 1)
184
+ #define DSQL_INTERVAL_DAY (DSQL_INTERVAL_TYPE_BASE + 2)
185
+ #define DSQL_INTERVAL_HOUR (DSQL_INTERVAL_TYPE_BASE + 3)
186
+ #define DSQL_INTERVAL_MINUTE (DSQL_INTERVAL_TYPE_BASE + 4)
187
+ #define DSQL_INTERVAL_SECOND (DSQL_INTERVAL_TYPE_BASE + 5)
188
+ #define DSQL_INTERVAL_YEAR_TO_MONTH (DSQL_INTERVAL_TYPE_BASE + 6)
189
+ #define DSQL_INTERVAL_DAY_TO_HOUR (DSQL_INTERVAL_TYPE_BASE + 7)
190
+ #define DSQL_INTERVAL_DAY_TO_MINUTE (DSQL_INTERVAL_TYPE_BASE + 8)
191
+ #define DSQL_INTERVAL_DAY_TO_SECOND (DSQL_INTERVAL_TYPE_BASE + 9)
192
+ #define DSQL_INTERVAL_HOUR_TO_MINUTE (DSQL_INTERVAL_TYPE_BASE + 10)
193
+ #define DSQL_INTERVAL_HOUR_TO_SECOND (DSQL_INTERVAL_TYPE_BASE + 11)
194
+ #define DSQL_INTERVAL_MINUTE_TO_SECOND (DSQL_INTERVAL_TYPE_BASE + 12)
195
+
196
+ #define DSQL_IS_TYPE_INTERVAL(type) (DSQL_INTERVAL_TYPE_BASE <= (type) && (type) <= DSQL_INTERVAL_TYPE_END)
197
+ #define DSQL_IS_TYPE_INTERVAL_YM(type) (type == DSQL_INTERVAL_YEAR || type == DSQL_INTERVAL_MONTH || type == DSQL_INTERVAL_YEAR_TO_MONTH)
198
+ #define DSQL_IS_TYPE_INTERVAL_DT(type) (DSQL_IS_TYPE_INTERVAL(type) && !DSQL_IS_TYPE_INTERVAL_YM(type))
199
+ #define DSQL_IS_TYPE_DATETIME(type) (DSQL_DATE <= type && type <= DSQL_TIMESTAMP)
200
+
201
+ //diagnose function code definition
202
+ #define DSQL_DIAG_FUNC_CODE_INVALID 0
203
+ #define DSQL_DIAG_FUNC_CODE_SELECT 1
204
+ #define DSQL_DIAG_FUNC_CODE_INSERT 2
205
+ #define DSQL_DIAG_FUNC_CODE_DELETE 3
206
+ #define DSQL_DIAG_FUNC_CODE_UPDATE 4
207
+ #define DSQL_DIAG_FUNC_CODE_CREATE_DB 5
208
+ #define DSQL_DIAG_FUNC_CODE_CREATE_TAB 6
209
+ #define DSQL_DIAG_FUNC_CODE_DROP_TAB 7
210
+ #define DSQL_DIAG_FUNC_CODE_CREATE_VIEW 8
211
+ #define DSQL_DIAG_FUNC_CODE_DROP_VIEW 9
212
+ #define DSQL_DIAG_FUNC_CODE_CREATE_INDEX 10
213
+ #define DSQL_DIAG_FUNC_CODE_DROP_INDEX 11
214
+ #define DSQL_DIAG_FUNC_CODE_CREATE_USER 12
215
+ #define DSQL_DIAG_FUNC_CODE_DROP_USER 13
216
+ #define DSQL_DIAG_FUNC_CODE_CREATE_ROLE 14
217
+ #define DSQL_DIAG_FUNC_CODE_DROP_ROLE 15
218
+ #define DSQL_DIAG_FUNC_CODE_COMMIT 16
219
+ #define DSQL_DIAG_FUNC_CODE_ROLLBACK 17
220
+ #define DSQL_DIAG_FUNC_CODE_EXPLAIN 18
221
+ #define DSQL_DIAG_FUNC_CODE_SET_TRX 19
222
+ #define DSQL_DIAG_FUNC_CODE_SAVE_POINT 20
223
+ #define DSQL_DIAG_FUNC_CODE_DROP 21
224
+ #define DSQL_DIAG_FUNC_CODE_ALTER_DB 22
225
+ #define DSQL_DIAG_FUNC_CODE_ALTER_USER 23
226
+ #define DSQL_DIAG_FUNC_CODE_CREATE_FUNC 24
227
+ #define DSQL_DIAG_FUNC_CODE_SET_CURRENT_DB 25
228
+ #define DSQL_DIAG_FUNC_CODE_GRANT 26
229
+ #define DSQL_DIAG_FUNC_CODE_REVOKE 27
230
+ #define DSQL_DIAG_FUNC_CODE_CALL 28
231
+ #define DSQL_DIAG_FUNC_CODE_ALTER_TAB 29
232
+ #define DSQL_DIAG_FUNC_CODE_CREATE_SCHEMA 30
233
+ #define DSQL_DIAG_FUNC_CODE_AUDIT 31
234
+ #define DSQL_DIAG_FUNC_CODE_ALTER_TRIGGER 32
235
+ #define DSQL_DIAG_FUNC_CODE_SELECT_INTO 33
236
+ #define DSQL_DIAG_FUNC_CODE_FETCH 34
237
+ #define DSQL_DIAG_FUNC_CODE_CLOSE_CURSOR 35
238
+ #define DSQL_DIAG_FUNC_CODE_TRUNC_TAB 36
239
+ #define DSQL_DIAG_FUNC_CODE_CREATE_SEQUENCE 37
240
+ #define DSQL_DIAG_FUNC_CODE_CREATE_LOGIN 38
241
+ #define DSQL_DIAG_FUNC_CODE_ALTER_LOGIN 39
242
+ #define DSQL_DIAG_FUNC_CODE_CREATE_CONTEXT_INDEX 40
243
+ #define DSQL_DIAG_FUNC_CODE_DROP_CONTEXT_INDEX 41
244
+ #define DSQL_DIAG_FUNC_CODE_ALT_CONTER_INDEX 42
245
+ #define DSQL_DIAG_FUNC_CODE_CURSOR_DELETE 43
246
+ #define DSQL_DIAG_FUNC_CODE_CURSOR_UPDATE 44
247
+ #define DSQL_DIAG_FUNC_CODE_CREATE_LINK 45
248
+ #define DSQL_DIAG_FUNC_CODE_LOCK_TAB 46
249
+ #define DSQL_DIAG_FUNC_CODE_CREATE_POLICY 47
250
+ #define DSQL_DIAG_FUNC_CODE_ALTER_POLICY 48
251
+ #define DSQL_DIAG_FUNC_CODE_ALTER_USER_POLICY 49
252
+ #define DSQL_DIAG_FUNC_CODE_ALTER_TABLE_POLICY 50
253
+ #define DSQL_DIAG_FUNC_CODE_CREATE_RULE 51
254
+ #define DSQL_DIAG_FUNC_CODE_CREATE_OPERATOR 52
255
+ #define DSQL_DIAG_FUNC_CODE_CREATE_ALERT 53
256
+ #define DSQL_DIAG_FUNC_CODE_CREATE_JOB 54
257
+ #define DSQL_DIAG_FUNC_CODE_ALTER_OPERATOR 55
258
+ #define DSQL_DIAG_FUNC_CODE_ALTER_ALERT 56
259
+ #define DSQL_DIAG_FUNC_CODE_ALTER_JOB 57
260
+ #define DSQL_DIAG_FUNC_CODE_SET_IDENTINS 58
261
+ #define DSQL_DIAG_FUNC_CODE_BACKUP_DATABASE 59
262
+ #define DSQL_DIAG_FUNC_CODE_RESTORE_DATABASE 60
263
+ #define DSQL_DIAG_FUNC_CODE_CREATE_PACKAGE 61
264
+ #define DSQL_DIAG_FUNC_CODE_CREATE_PACKAGE_BODY 62
265
+ #define DSQL_DIAG_FUNC_CODE_CREATE_TYPE 63
266
+ #define DSQL_DIAG_FUNC_CODE_CREATE_TYPE_BODY 64
267
+ #define DSQL_DIAG_FUNC_CODE_CREATE_SYNONYM 65
268
+ #define DSQL_DIAG_FUNC_CODE_CREATE_CRYPT 66
269
+ #define DSQL_DIAG_FUNC_CODE_ALTER_CRYPT 67
270
+ #define DSQL_DIAG_FUNC_CODE_SET_CURRENT_SCHEMA 68
271
+ #define DSQL_DIAG_FUNC_CODE_MERGE 69
272
+ #define DSQL_DIAG_FUNC_CODE_SET_TIME_ZONE 70
273
+ #define DSQL_DIAG_FUNC_CODE_CREATE_TABLESPACE 71
274
+ #define DSQL_DIAG_FUNC_CODE_ALTER_TABLESPACE 72
275
+ #define DSQL_DIAG_FUNC_CODE_COMMENT 73
276
+ #define DSQL_DIAG_FUNC_CODE_ALTER_SESSION 74
277
+ #define DSQL_DIAG_FUNC_CODE_CREATE_DOMAIN 75
278
+ #define DSQL_DIAG_FUNC_CODE_CREATE_CHARSET 76
279
+ #define DSQL_DIAG_FUNC_CODE_CREATE_COLLATION 77
280
+ #define DSQL_DIAG_FUNC_CODE_CREATE_CONTEXT 78
281
+ #define DSQL_DIAG_FUNC_CODE_ALTER_INDEX 79
282
+ #define DSQL_DIAG_FUNC_CODE_STAT_ON 80
283
+ #define DSQL_DIAG_FUNC_CODE_CREATE_PROCEDURE 81
284
+ #define DSQL_DIAG_FUNC_CODE_ALT_SESS_TIMESTAMP_FMT 82
285
+ #define DSQL_DIAG_FUNC_CODE_ALT_SESS_TIMESTAMP_TZ_FMT 83
286
+ #define DSQL_DIAG_FUNC_CODE_ALT_SESS_TIME_FMT 84
287
+ #define DSQL_DIAG_FUNC_CODE_ALT_SESS_DATE_FMT 85
288
+ #define DSQL_DIAG_FUNC_CODE_ALT_SESS_TIME_TZ_FMT 86
289
+ #define DSQL_DIAG_FUNC_CODE_ALT_SESS_DATE_LANGUAGE 87
290
+ #define DSQL_DIAG_FUNC_CODE_CREATE_PROFILE 88
291
+ #define DSQL_DIAG_FUNC_CODE_ALTER_PROFILE 89
292
+ #define DSQL_DIAG_FUNC_CODE_DROP_PROFILE 90
293
+ #define DSQL_DIAG_FUNC_CODE_CREATE_DIRECTORY 91 /* create directory */
294
+ #define DSQL_DIAG_FUNC_CODE_BEGIN_TRAN 92 /* begin transaction */
295
+ #define DSQL_DIAG_FUNC_CODE_CREATE_OPRT 93 // create operator
296
+ #define DSQL_DIAG_FUNC_CODE_DROP_OPRT 94 // drop operator
297
+ #define DSQL_DIAG_FUNC_CODE_CPART_GROUP 95 // create partition group
298
+ #define DSQL_DIAG_FUNC_CODE_ALTER_FUNCTION 96 // alter function
299
+ #define DSQL_DIAG_FUNC_CODE_ALT_SESS_NUMERIC_CHARACTERS 97 // NLS_NUMERIC_CHARACTERS
300
+
301
+ /* internal representation of numeric data type */
302
+ #define DPI_MAX_NUMERIC_LEN 16
303
+ typedef struct dpi_numeric_struct dpi_numeric_t;
304
+ struct dpi_numeric_struct
305
+ {
306
+ udbyte precision;
307
+ sdbyte scale;
308
+ udbyte sign; /* 1 if positive, 0 if negative */
309
+ udbyte val[DPI_MAX_NUMERIC_LEN];
310
+ };
311
+
312
+ typedef struct dpi_date_struct dpi_date_t;
313
+ struct dpi_date_struct
314
+ {
315
+ sdint2 year;
316
+ udint2 month;
317
+ udint2 day;
318
+ };
319
+
320
+ typedef struct dpi_time_struct dpi_time_t;
321
+ struct dpi_time_struct
322
+ {
323
+ udint2 hour;
324
+ udint2 minute;
325
+ udint2 second;
326
+ };
327
+
328
+ typedef struct dpi_timestamp_struct dpi_timestamp_t;
329
+ struct dpi_timestamp_struct
330
+ {
331
+ sdint2 year;
332
+ udint2 month;
333
+ udint2 day;
334
+ udint2 hour;
335
+ udint2 minute;
336
+ udint2 second;
337
+ udint4 fraction;
338
+ };
339
+
340
+ typedef enum
341
+ {
342
+ DSQL_IS_YEAR = 1,
343
+ DSQL_IS_MONTH = 2,
344
+ DSQL_IS_DAY = 3,
345
+ DSQL_IS_HOUR = 4,
346
+ DSQL_IS_MINUTE = 5,
347
+ DSQL_IS_SECOND = 6,
348
+ DSQL_IS_YEAR_TO_MONTH = 7,
349
+ DSQL_IS_DAY_TO_HOUR = 8,
350
+ DSQL_IS_DAY_TO_MINUTE = 9,
351
+ DSQL_IS_DAY_TO_SECOND = 10,
352
+ DSQL_IS_HOUR_TO_MINUTE = 11,
353
+ DSQL_IS_HOUR_TO_SECOND = 12,
354
+ DSQL_IS_MINUTE_TO_SECOND = 13
355
+ } DPIINTERVAL;
356
+
357
+ typedef struct dpi_year_month_struct dpi_year_month_t;
358
+ struct dpi_year_month_struct
359
+ {
360
+ udint4 year;
361
+ udint4 month;
362
+ };
363
+
364
+ typedef struct dpi_day_second_struct dpi_day_second_t;
365
+ struct dpi_day_second_struct
366
+ {
367
+ udint4 day;
368
+ udint4 hour;
369
+ udint4 minute;
370
+ udint4 second;
371
+ udint4 fraction;
372
+ };
373
+
374
+ typedef struct dpi_interval_struct dpi_interval_t;
375
+ struct dpi_interval_struct
376
+ {
377
+ DPIINTERVAL interval_type;
378
+ sdint2 interval_sign; //1:- 0:+
379
+ union {
380
+ dpi_year_month_t year_month;
381
+ dpi_day_second_t day_second;
382
+ } intval;
383
+ };
384
+
385
+ /* environment attribute */
386
+ #define DSQL_ATTR_OUTPUT_NTS 10001
387
+
388
+ /* connection attributes */
389
+ #define DSQL_ATTR_AUTO_IPD 10001
390
+
391
+ /* statement attributes */
392
+ #define DSQL_ATTR_APP_ROW_DESC 10010
393
+ #define DSQL_ATTR_APP_PARAM_DESC 10011
394
+ #define DSQL_ATTR_IMP_ROW_DESC 10012
395
+ #define DSQL_ATTR_IMP_PARAM_DESC 10013
396
+ #define DSQL_ATTR_METADATA_ID 10014
397
+ #define DSQL_ATTR_CURSOR_SCROLLABLE (-1)
398
+ #define DSQL_ATTR_CURSOR_SENSITIVITY (-2)
399
+ #define DSQL_ATTR_SQL_CHARSET (20000)
400
+ #define DSQL_ATTR_IGN_BP_ERR (20001)
401
+ #define DSQL_ATTR_BP_MAX_ERRS (20002)
402
+ #define DSQL_ATTR_ROW_IND_BIND_TYPE (20003)
403
+ #define DSQL_ATTR_PARAM_IND_BIND_TYPE (20004)
404
+ #define DSQL_ATTR_FETCH_PACKAGE_SIZE (20005)
405
+ #define DSQL_ATTR_PARAM_AFFECT_ROWS_PTR (20006)
406
+
407
+ /* DSQL_ATTR_CURSOR_SCROLLABLE values */
408
+ #define DSQL_NONSCROLLABLE 0
409
+ #define DSQL_SCROLLABLE 1
410
+
411
+ /* identifiers of fields in the SQL descriptor */
412
+ #define DSQL_DESC_COUNT 1001
413
+ #define DSQL_DESC_TYPE 1002
414
+ #define DSQL_DESC_LENGTH 1003
415
+ #define DSQL_DESC_OCTET_LENGTH_PTR 1004
416
+ #define DSQL_DESC_PRECISION 1005
417
+ #define DSQL_DESC_SCALE 1006
418
+ #define DSQL_DESC_DATETIME_INTERVAL_CODE 1007
419
+ #define DSQL_DESC_NULLABLE 1008
420
+ #define DSQL_DESC_INDICATOR_PTR 1009
421
+ #define DSQL_DESC_DATA_PTR 1010
422
+ #define DSQL_DESC_NAME 1011
423
+ #define DSQL_DESC_UNNAMED 1012
424
+ #define DSQL_DESC_OCTET_LENGTH 1013
425
+ #define DSQL_DESC_ALLOC_TYPE 1099
426
+
427
+ /* Statement attribute values for cursor sensitivity */
428
+ #define DSQL_UNSPECIFIED 0
429
+ #define DSQL_INSENSITIVE 1
430
+ #define DSQL_SENSITIVE 2
431
+
432
+ /* Default conversion code for dpi_bind_col(), dpi_bind_param() and dpi_get_data() */
433
+ #define DSQL_DEFAULT 99
434
+
435
+ /* dpi_get_data() code indicating that the application row descriptor
436
+ * specifies the data type
437
+ */
438
+ #define DSQL_ARD_TYPE (-99)
439
+
440
+ #define DSQL_FALSE 0
441
+ #define DSQL_TRUE 1
442
+
443
+ /* values of NULLABLE field in descriptor */
444
+ #define DSQL_NO_NULLS 0
445
+ #define DSQL_NULLABLE 1
446
+
447
+ /* Values returned to show WHERE clause
448
+ * supported
449
+ */
450
+ #define DSQL_PRED_NONE 0
451
+ #define DSQL_PRED_CHAR 1
452
+ #define DSQL_PRED_BASIC 2
453
+ #define DSQL_PRED_SEARCHABLE 3
454
+
455
+ /* values of UNNAMED field in descriptor */
456
+ #define DSQL_NAMED 0
457
+ #define DSQL_UNNAMED 1
458
+
459
+ /* values of ALLOC_TYPE field in descriptor */
460
+ #define DSQL_DESC_ALLOC_AUTO 1
461
+ #define DSQL_DESC_ALLOC_USER 2
462
+
463
+ /* Codes used for FetchOrientation in dpi_fetch_scroll()
464
+ */
465
+ #define DSQL_FETCH_NEXT 1
466
+ #define DSQL_FETCH_FIRST 2
467
+
468
+ /* Other codes used for FetchOrientation in dpi_fetch_scroll() */
469
+ #define DSQL_FETCH_LAST 3
470
+ #define DSQL_FETCH_PRIOR 4
471
+ #define DSQL_FETCH_ABSOLUTE 5
472
+ #define DSQL_FETCH_RELATIVE 6
473
+ #define DSQL_FETCH_BOOKMARK 8
474
+
475
+ /* dpi_end_tran() options */
476
+ #define DSQL_COMMIT 0
477
+ #define DSQL_ROLLBACK 1
478
+
479
+ /* null handles returned by dpi_alloc_handle() */
480
+ #define DSQL_NULL_HENV 0
481
+ #define DSQL_NULL_HDBC 0
482
+ #define DSQL_NULL_HSTMT 0
483
+ #define DSQL_NULL_HDESC 0
484
+ #define DSQL_NULL_HLOB 0
485
+
486
+ /* null handle used in place of parent handle when allocating HENV */
487
+ #define DSQL_NULL_HANDLE 0L
488
+
489
+
490
+ //#define ISO_LEVEL_INVALID (-1)
491
+ #define ISO_LEVEL_READ_UNCOMMITTED 0
492
+ #define ISO_LEVEL_READ_COMMITTED 1
493
+ #define ISO_LEVEL_REPEATABLE_READ 2
494
+ #define ISO_LEVEL_SERIALIZABLE 3
495
+
496
+ /* Reserved values for UNIQUE argument of dpi_statistics() */
497
+ #define DSQL_INDEX_UNIQUE 0
498
+
499
+ /* Values that may appear in the result set of dpi_specialcolumns() */
500
+ #define DSQL_SCOPE_CURROW 0
501
+
502
+ /* Column types and scopes in dpi_specialcolumns(). */
503
+ #define DSQL_BEST_ROWID 1
504
+ #define DSQL_ROWVER 2
505
+
506
+ //DPI call interface
507
+ DllExport
508
+ DPIRETURN
509
+ dpi_module_init();
510
+
511
+ DllExport
512
+ DPIRETURN
513
+ dpi_module_deinit();
514
+
515
+ //handle function
516
+ DllExport
517
+ DPIRETURN
518
+ dpi_alloc_handle(
519
+ sdint2 hndl_type,
520
+ dhandle hndl_in,
521
+ dhandle* hndl_out
522
+ );
523
+
524
+ DllExport
525
+ DPIRETURN
526
+ dpi_free_handle(
527
+ sdint2 hndl_type,
528
+ dhandle hndl
529
+ );
530
+
531
+ DllExport
532
+ DPIRETURN
533
+ dpi_alloc_env(
534
+ dhenv* dpi_henv
535
+ );
536
+
537
+ DllExport
538
+ DPIRETURN
539
+ dpi_alloc_con(
540
+ dhenv dpi_henv,
541
+ dhcon* dpi_hcon
542
+ );
543
+
544
+ DllExport
545
+ DPIRETURN
546
+ dpi_alloc_stmt(
547
+ dhcon dpi_hcon,
548
+ dhstmt* dpi_hstmt
549
+ );
550
+
551
+ DllExport
552
+ DPIRETURN
553
+ dpi_alloc_desc(
554
+ dhcon dpi_hcon,
555
+ dhdesc* dpi_hdesc
556
+ );
557
+
558
+ DllExport
559
+ DPIRETURN
560
+ dpi_alloc_lob_locator(
561
+ dhstmt dpi_hstmt,
562
+ dhloblctr* dpi_loblctr
563
+ );
564
+
565
+ DllExport
566
+ DPIRETURN
567
+ dpi_alloc_lob_locator2(
568
+ dhcon dpi_hcon,
569
+ dhloblctr* dpi_loblctr
570
+ );
571
+
572
+ DllExport
573
+ DPIRETURN
574
+ dpi_alloc_bfile(
575
+ dhcon dpi_hcon,
576
+ dhbfile* dpi_loblctr
577
+ );
578
+
579
+ DllExport
580
+ DPIRETURN
581
+ dpi_free_env(
582
+ dhenv dpi_henv
583
+ );
584
+
585
+ DllExport
586
+ DPIRETURN
587
+ dpi_free_con(
588
+ dhcon dpi_hcon
589
+ );
590
+
591
+ DllExport
592
+ DPIRETURN
593
+ dpi_free_stmt(
594
+ dhstmt dpi_hstmt
595
+ );
596
+
597
+ DllExport
598
+ DPIRETURN
599
+ dpi_free_desc(
600
+ dhdesc dpi_hdesc
601
+ );
602
+
603
+ DllExport
604
+ DPIRETURN
605
+ dpi_free_lob_locator(
606
+ dhloblctr dpi_loblctr
607
+ );
608
+
609
+ DllExport
610
+ DPIRETURN
611
+ dpi_free_bfile(
612
+ dhbfile bfile_lctr
613
+ );
614
+
615
+ DllExport
616
+ DPIRETURN
617
+ dpi_set_env_attr(
618
+ dhenv dpi_henv,
619
+ sdint4 attr_id,
620
+ dpointer val,
621
+ sdint4 val_len
622
+ );
623
+
624
+ DllExport
625
+ DPIRETURN
626
+ dpi_set_con_attr(
627
+ dhcon dpi_hcon,
628
+ sdint4 attr_id,
629
+ dpointer val,
630
+ sdint4 val_len
631
+ );
632
+
633
+ DllExport
634
+ DPIRETURN
635
+ dpi_set_stmt_attr(
636
+ dhstmt dpi_hstmt,
637
+ sdint4 attr_id,
638
+ dpointer val,
639
+ sdint4 val_len
640
+ );
641
+
642
+ DllExport
643
+ DPIRETURN
644
+ dpi_get_env_attr(
645
+ dhenv dpi_henv,
646
+ sdint4 attr_id,
647
+ dpointer val,
648
+ sdint4 buf_len,
649
+ sdint4* val_len
650
+ );
651
+
652
+ DllExport
653
+ DPIRETURN
654
+ dpi_get_con_attr(
655
+ dhcon dpi_hcon,
656
+ sdint4 attr_id,
657
+ dpointer val,
658
+ sdint4 buf_len,
659
+ sdint4* val_len
660
+ );
661
+
662
+ DllExport
663
+ DPIRETURN
664
+ dpi_get_stmt_attr(
665
+ dhstmt dpi_hstmt,
666
+ sdint4 attr_id,
667
+ dpointer val,
668
+ sdint4 buf_len,
669
+ sdint4* val_len
670
+ );
671
+
672
+ //diagnose functions
673
+ DllExport
674
+ DPIRETURN
675
+ dpi_get_diag_rec(
676
+ sdint2 hndl_type,
677
+ dhandle hndl,
678
+ sdint2 rec_num,
679
+ sdint4* err_code,
680
+ sdbyte* err_msg,
681
+ sdint2 buf_sz,
682
+ sdint2* msg_len
683
+ );
684
+
685
+ DllExport
686
+ DPIRETURN
687
+ dpi_get_diag_field(
688
+ sdint2 hndl_type,
689
+ dhandle hndl,
690
+ sdint2 rec_num,
691
+ sdint2 diag_id,
692
+ dpointer diag_info,
693
+ slength buf_len,
694
+ slength* info_len
695
+ );
696
+
697
+ //connection functions
698
+ DllExport
699
+ DPIRETURN
700
+ dpi_login(
701
+ dhcon dpi_hcon,
702
+ sdbyte* svr,
703
+ sdbyte* user,
704
+ sdbyte* pwd
705
+ );
706
+
707
+ DllExport
708
+ DPIRETURN
709
+ dpi_logout(
710
+ dhcon dpi_hcon
711
+ );
712
+
713
+ DllExport
714
+ DPIRETURN
715
+ dpi_commit(
716
+ dhcon dpi_hcon
717
+ );
718
+
719
+ DllExport
720
+ DPIRETURN
721
+ dpi_rollback(
722
+ dhcon dpi_hcon
723
+ );
724
+
725
+ DllExport
726
+ DPIRETURN
727
+ dpi_end_tran(
728
+ sdint2 hndl_type, //in
729
+ dhandle hndl, //in
730
+ sdint2 type
731
+ );
732
+
733
+ DllExport
734
+ DPIRETURN
735
+ dpi_cancel(
736
+ dhstmt dpi_hstmt
737
+ );
738
+
739
+ //descripton functions
740
+ DllExport
741
+ DPIRETURN
742
+ dpi_copy_desc(
743
+ dhdesc src_desc,
744
+ dhdesc target_desc
745
+ );
746
+
747
+ DllExport
748
+ DPIRETURN
749
+ dpi_set_desc_rec(
750
+ dhdesc dpi_desc,
751
+ udint2 rec_num,
752
+ sdint2 type,
753
+ sdint2 sub_type,
754
+ slength length,
755
+ sdint2 prec,
756
+ sdint2 scale,
757
+ dpointer data_ptr,
758
+ slength* str_len,
759
+ slength* ind_ptr
760
+ );
761
+
762
+ DllExport
763
+ DPIRETURN
764
+ dpi_set_desc_field(
765
+ dhdesc dpi_desc,
766
+ udint2 rec_num,
767
+ sdint2 field,
768
+ dpointer val,
769
+ sdint4 val_len
770
+ );
771
+
772
+ DllExport
773
+ DPIRETURN
774
+ dpi_get_desc_rec(
775
+ dhdesc dpi_desc,
776
+ udint2 rec_num,
777
+ sdbyte* name_buf,
778
+ sdint2 name_buf_len,
779
+ sdint2* name_len,
780
+ sdint2* type,
781
+ sdint2* sub_type,
782
+ slength* length,
783
+ sdint2* prec,
784
+ sdint2* scale,
785
+ sdint2* nullable
786
+ );
787
+
788
+ DllExport
789
+ DPIRETURN
790
+ dpi_get_desc_field(
791
+ dhdesc dpi_desc,
792
+ udint2 rec_num,
793
+ sdint2 field,
794
+ dpointer val,
795
+ sdint4 val_len,
796
+ sdint4* str_len
797
+ );
798
+
799
+ //statement function
800
+ //statement execution operation
801
+ DllExport
802
+ DPIRETURN
803
+ dpi_bind_param(
804
+ dhstmt dpi_hstmt,
805
+ udint2 iparam, //1-based index
806
+ sdint2 param_type,
807
+ sdint2 ctype,
808
+ sdint2 dtype,
809
+ ulength precision,
810
+ sdint2 scale,
811
+ dpointer buf,
812
+ slength buf_len,
813
+ slength* ind_ptr
814
+ );
815
+
816
+ DllExport
817
+ DPIRETURN
818
+ dpi_bind_param2(
819
+ dhstmt dpi_hstmt,
820
+ udint2 iparam, //1-based index
821
+ sdint2 param_type,
822
+ sdint2 ctype,
823
+ sdint2 dtype,
824
+ ulength precision,
825
+ sdint2 scale,
826
+ dpointer buf,
827
+ slength buf_len,
828
+ slength* ind_ptr,
829
+ slength* act_len_ptr
830
+ );
831
+
832
+ DllExport
833
+ DPIRETURN
834
+ dpi_desc_param(
835
+ dhstmt dpi_hstmt,
836
+ udint2 iparam, //1-based
837
+ sdint2* sql_type,
838
+ ulength* prec,
839
+ sdint2* scale,
840
+ sdint2* nullable
841
+ );
842
+
843
+ DllExport
844
+ DPIRETURN
845
+ dpi_exec(
846
+ dhstmt dpi_hstmt
847
+ );
848
+
849
+ DllExport
850
+ DPIRETURN
851
+ dpi_exec_direct(
852
+ dhstmt dpi_hstmt,
853
+ sdbyte* sql_txt
854
+ );
855
+
856
+ DllExport
857
+ DPIRETURN
858
+ dpi_exec_add_batch(
859
+ dhstmt dpi_hstmt
860
+ );
861
+
862
+ DllExport
863
+ DPIRETURN
864
+ dpi_exec_batch(
865
+ dhstmt dpi_hstmt
866
+ );
867
+
868
+ DllExport
869
+ DPIRETURN
870
+ dpi_unbind_params(
871
+ dhstmt dpi_hstmt
872
+ );
873
+
874
+ DllExport
875
+ DPIRETURN
876
+ dpi_unbind_columns(
877
+ dhstmt dpi_hstmt
878
+ );
879
+
880
+ DllExport
881
+ DPIRETURN
882
+ dpi_param_data(
883
+ dhstmt dpi_hstmt,
884
+ dpointer* val_ptr
885
+ );
886
+
887
+ DllExport
888
+ DPIRETURN
889
+ dpi_prepare(
890
+ dhstmt dpi_hstmt,
891
+ sdbyte* sql_txt
892
+ );
893
+
894
+ DllExport
895
+ DPIRETURN
896
+ dpi_put_data(
897
+ dhstmt dpi_hstmt,
898
+ dpointer val,
899
+ slength val_len
900
+ );
901
+
902
+ DllExport
903
+ DPIRETURN
904
+ dpi_number_params(
905
+ dhstmt dpi_stmt,
906
+ udint2* param_cnt
907
+ );
908
+
909
+ DllExport
910
+ DPIRETURN
911
+ dpi_set_cursor_name(
912
+ dhstmt dpi_hstmt,
913
+ sdbyte* name,
914
+ sdint2 name_len
915
+ );
916
+
917
+ DllExport
918
+ DPIRETURN
919
+ dpi_get_cursor_name(
920
+ dhstmt dpi_hstmt,
921
+ sdbyte* name,
922
+ sdint2 buf_len,
923
+ sdint2 *name_len
924
+ );
925
+
926
+ //statement resultset operation
927
+ DllExport
928
+ DPIRETURN
929
+ dpi_close_cursor(
930
+ dhstmt dpi_hstmt
931
+ );
932
+
933
+ DllExport
934
+ DPIRETURN
935
+ dpi_bind_col(
936
+ dhstmt dpi_hstmt,
937
+ udint2 icol,
938
+ sdint2 ctype,
939
+ dpointer val,
940
+ slength buf_len,
941
+ slength* ind
942
+ );
943
+
944
+ DllExport
945
+ DPIRETURN
946
+ dpi_bind_col2(
947
+ dhstmt dpi_hstmt,
948
+ udint2 icol,
949
+ sdint2 ctype,
950
+ dpointer val,
951
+ slength buf_len,
952
+ slength* ind,
953
+ slength* act_len
954
+ );
955
+
956
+ DllExport
957
+ DPIRETURN
958
+ dpi_number_columns(
959
+ dhstmt dpi_stmt,
960
+ sdint2* col_cnt
961
+ );
962
+
963
+ DllExport
964
+ DPIRETURN
965
+ dpi_desc_column(
966
+ dhstmt dpi_hstmt,
967
+ sdint2 icol,
968
+ sdbyte* name,
969
+ sdint2 buf_len,
970
+ sdint2* name_len,
971
+ sdint2* sqltype,
972
+ ulength* col_sz,
973
+ sdint2* dec_digits,
974
+ sdint2* nullable
975
+ );
976
+
977
+ DllExport
978
+ DPIRETURN
979
+ dpi_col_attr(
980
+ dhstmt dpi_hstmt,
981
+ udint2 icol,
982
+ udint2 fld_id,
983
+ dpointer chr_attr,
984
+ sdint2 buf_len,
985
+ sdint2* chr_attr_len,
986
+ slength* num_attr
987
+ );
988
+
989
+ DllExport
990
+ DPIRETURN
991
+ dpi_bulk_operation(
992
+ dhstmt dpi_hstmt,
993
+ udint2 op
994
+ );
995
+
996
+ DllExport
997
+ DPIRETURN
998
+ dpi_fetch(
999
+ dhstmt dpi_hstmt,
1000
+ ulength* row_num
1001
+ );
1002
+
1003
+ DllExport
1004
+ DPIRETURN
1005
+ dpi_fetch_scroll(
1006
+ dhstmt dpi_hstmt,
1007
+ sdint2 orient,
1008
+ slength offset,
1009
+ ulength* row_num
1010
+ );
1011
+
1012
+ DllExport
1013
+ DPIRETURN
1014
+ dpi_get_data(
1015
+ dhstmt dpi_hstmt,
1016
+ udint2 icol,
1017
+ sdint2 ctype,
1018
+ dpointer val,
1019
+ slength buf_len,
1020
+ slength* val_len
1021
+ );
1022
+
1023
+ DllExport
1024
+ DPIRETURN
1025
+ dpi_get_data2(
1026
+ dhstmt dpi_hstmt,
1027
+ udint2 icol,
1028
+ sdint2 ctype,
1029
+ dpointer val,
1030
+ slength buf_len,
1031
+ slength* val_len,
1032
+ slength* act_len
1033
+ );
1034
+
1035
+ DllExport
1036
+ DPIRETURN
1037
+ dpi_more_results(
1038
+ dhstmt dpi_hstmt
1039
+ );
1040
+
1041
+ DllExport
1042
+ DPIRETURN
1043
+ dpi_set_pos(
1044
+ dhstmt dpi_hstmt,
1045
+ ulength row_num,
1046
+ udint2 op,
1047
+ udint2 lock_type
1048
+ );
1049
+
1050
+ DllExport
1051
+ DPIRETURN
1052
+ dpi_row_count(
1053
+ dhstmt dpi_hstmt,
1054
+ sdint8* row_num
1055
+ );
1056
+
1057
+ DllExport
1058
+ DPIRETURN
1059
+ dpi_lob_get_length(
1060
+ dhloblctr dpi_loblctr,
1061
+ slength* len
1062
+ );
1063
+
1064
+ DllExport
1065
+ DPIRETURN
1066
+ dpi_lob_get_length2(
1067
+ dhloblctr dpi_loblctr,
1068
+ sdint8* len
1069
+ );
1070
+
1071
+ DllExport
1072
+ DPIRETURN
1073
+ dpi_lob_read(
1074
+ dhloblctr dpi_loblctr,
1075
+ ulength start_pos,
1076
+ sdint2 ctype,
1077
+ slength data_to_read,
1078
+ dpointer val_buf,
1079
+ slength buf_len,
1080
+ slength* data_get
1081
+ );
1082
+
1083
+ DllExport
1084
+ DPIRETURN
1085
+ dpi_lob_read2(
1086
+ dhloblctr dpi_loblctr,
1087
+ udint8 start_pos,
1088
+ sdint2 ctype,
1089
+ slength data_to_read,
1090
+ dpointer val_buf,
1091
+ slength buf_len,
1092
+ slength* data_get
1093
+ );
1094
+
1095
+ DllExport
1096
+ DPIRETURN
1097
+ dpi_lob_read3(
1098
+ dhloblctr dpi_loblctr,
1099
+ udint8 start_pos,
1100
+ sdint2 ctype,
1101
+ slength data_to_read,
1102
+ dpointer val_buf,
1103
+ slength buf_len,
1104
+ slength* data_get,
1105
+ slength* data_get_bytes
1106
+ );
1107
+
1108
+ DllExport
1109
+ DPIRETURN
1110
+ dpi_lob_write(
1111
+ dhloblctr dpi_loblctr,
1112
+ ulength start_pos,
1113
+ sdint2 ctype,
1114
+ dpointer val,
1115
+ ulength bytes_to_write,
1116
+ ulength* data_writed
1117
+ );
1118
+
1119
+ DllExport
1120
+ DPIRETURN
1121
+ dpi_lob_write2(
1122
+ dhloblctr dpi_loblctr,
1123
+ udint8 start_pos,
1124
+ sdint2 ctype,
1125
+ dpointer val,
1126
+ ulength bytes_to_write,
1127
+ ulength* data_writed
1128
+ );
1129
+
1130
+ DllExport
1131
+ DPIRETURN
1132
+ dpi_lob_truncate(
1133
+ dhloblctr dpi_loblctr,
1134
+ ulength len,
1135
+ ulength* data_len
1136
+ );
1137
+
1138
+ DllExport
1139
+ DPIRETURN
1140
+ dpi_lob_truncate2(
1141
+ dhloblctr dpi_loblctr,
1142
+ udint8 len,
1143
+ udint8* data_len
1144
+ );
1145
+
1146
+ //////complex object
1147
+ DllExport
1148
+ DPIRETURN
1149
+ dpi_desc_obj(
1150
+ dhcon dpi_con,
1151
+ sdbyte* schema,
1152
+ sdbyte* compobj_name,
1153
+ dhobjdesc* obj_desc
1154
+ );
1155
+
1156
+ DllExport
1157
+ DPIRETURN
1158
+ dpi_desc_obj2(
1159
+ dhcon dpi_con,
1160
+ sdbyte* schema,
1161
+ sdbyte* pkg_name,
1162
+ sdbyte* compobj_name,
1163
+ dhobjdesc* obj_desc
1164
+ );
1165
+
1166
+ DllExport
1167
+ DPIRETURN
1168
+ dpi_free_obj_desc(
1169
+ dhobjdesc obj_desc
1170
+ );
1171
+
1172
+ DllExport
1173
+ DPIRETURN
1174
+ dpi_alloc_obj(
1175
+ dhcon dpi_con,
1176
+ dhobj* object
1177
+ );
1178
+
1179
+ DllExport
1180
+ DPIRETURN
1181
+ dpi_free_obj(
1182
+ dhobj object
1183
+ );
1184
+
1185
+ DllExport
1186
+ DPIRETURN
1187
+ dpi_get_obj_attr(
1188
+ dhobj object,
1189
+ udint4 nth,
1190
+ udint2 attr_id,
1191
+ dpointer buf,
1192
+ udint4 buf_len,
1193
+ slength* len
1194
+ );
1195
+
1196
+ DllExport
1197
+ DPIRETURN
1198
+ dpi_get_obj_desc_attr(
1199
+ dhobjdesc obj_desc,
1200
+ udint4 nth,
1201
+ udint2 attr_id,
1202
+ dpointer buf,
1203
+ udint4 buf_len,
1204
+ slength* len
1205
+ );
1206
+
1207
+ DllExport
1208
+ DPIRETURN
1209
+ dpi_bind_obj_desc(
1210
+ dhobj object,
1211
+ dhobjdesc desc
1212
+ );
1213
+
1214
+ DllExport
1215
+ DPIRETURN
1216
+ dpi_unbind_obj_desc(
1217
+ dhobj object
1218
+ );
1219
+
1220
+ DllExport
1221
+ DPIRETURN
1222
+ dpi_set_obj_val(
1223
+ dhobj object,
1224
+ udint4 nth,
1225
+ udint2 ctype,
1226
+ dpointer val,
1227
+ slength val_len
1228
+ );
1229
+
1230
+ DllExport
1231
+ DPIRETURN
1232
+ dpi_set_indtab_node(
1233
+ dhobj object,
1234
+ udint2 ktype,
1235
+ dpointer key,
1236
+ slength key_len,
1237
+ udint2 vtype,
1238
+ dpointer val,
1239
+ slength val_len
1240
+ );
1241
+
1242
+ DllExport
1243
+ DPIRETURN
1244
+ dpi_get_obj_val(
1245
+ dhobj object,
1246
+ udint4 nth,
1247
+ udint2 ctype,
1248
+ dpointer val,
1249
+ udint4 buf_len,
1250
+ slength* val_len
1251
+ );
1252
+
1253
+ ////bfile
1254
+ DllExport
1255
+ DPIRETURN
1256
+ dpi_bfile_construct(
1257
+ dhbfile bfile_lctr,
1258
+ udbyte* dir_name,
1259
+ udbyte* file_name
1260
+ );
1261
+
1262
+ DllExport
1263
+ DPIRETURN
1264
+ dpi_bfile_get_name(
1265
+ dhbfile bfile_lctr,
1266
+ udbyte* dir_buf,
1267
+ udint4 dir_buf_len,
1268
+ udint4* dir_len,
1269
+ udbyte* file_buf,
1270
+ udint4 file_buf_len,
1271
+ udint4* file_len
1272
+ );
1273
+
1274
+ DllExport DPIRETURN
1275
+ dpi_bfile_read(
1276
+ dhbfile dpi_bfile,
1277
+ udint8 start_pos, //1 based:blob bytes clob chars
1278
+ sdint2 ctype,
1279
+ udint8 data_to_read, //0:default blob bytes clob chars
1280
+ dpointer val_buf,
1281
+ udint8 buf_len,
1282
+ udint8* data_get //blob:bytes_get clob:chars
1283
+ );
1284
+
1285
+ //catalog functions
1286
+ DllExport
1287
+ DPIRETURN
1288
+ dpi_tables(
1289
+ dhstmt dpi_stmt,
1290
+ udbyte* catalogname,
1291
+ sdint2 namelength1,
1292
+ udbyte* schemaname,
1293
+ sdint2 namelength2,
1294
+ udbyte* tablename,
1295
+ sdint2 namelength3,
1296
+ udbyte* tabletype,
1297
+ sdint2 namelength4
1298
+ );
1299
+
1300
+ DllExport
1301
+ DPIRETURN
1302
+ dpi_columns(
1303
+ dhstmt dpi_stmt,
1304
+ udbyte* catalogname,
1305
+ sdint2 namelength1,
1306
+ udbyte* schemaname,
1307
+ sdint2 namelength2,
1308
+ udbyte* tablename,
1309
+ sdint2 namelength3,
1310
+ udbyte* columnname,
1311
+ sdint2 namelength4
1312
+ );
1313
+
1314
+ DllExport
1315
+ DPIRETURN
1316
+ dpi_statistics(
1317
+ dhstmt dpi_stmt,
1318
+ udbyte* catalogname,
1319
+ sdint2 namelength1,
1320
+ udbyte* schemaname,
1321
+ sdint2 namelength2,
1322
+ udbyte* tablename,
1323
+ sdint2 namelength3,
1324
+ udint2 unique,
1325
+ udint2 reserved
1326
+ );
1327
+
1328
+ DllExport
1329
+ DPIRETURN
1330
+ dpi_specialcolumns(
1331
+ dhstmt dpi_stmt,
1332
+ udint2 identifiertype,
1333
+ udbyte* catalogname,
1334
+ sdint2 namelength1,
1335
+ udbyte* schemaname,
1336
+ sdint2 namelength2,
1337
+ udbyte* tablename,
1338
+ sdint2 namelength3,
1339
+ udint2 scope,
1340
+ udint2 nullable
1341
+ );
1342
+
1343
+ DllExport
1344
+ DPIRETURN
1345
+ dpi_primarykeys(
1346
+ dhstmt dpi_stmt,
1347
+ udbyte* catalogname,
1348
+ sdint2 namelength1,
1349
+ udbyte* schemaname,
1350
+ sdint2 namelength2,
1351
+ udbyte* tablename,
1352
+ sdint2 namelength3
1353
+ );
1354
+
1355
+ DllExport
1356
+ DPIRETURN
1357
+ dpi_foreignkeys(
1358
+ dhstmt dpi_stmt,
1359
+ udbyte* szpkcatalogname,
1360
+ sdint2 cbpkcatalogname,
1361
+ udbyte* szpkschemaname,
1362
+ sdint2 cbpkschemaname,
1363
+ udbyte* szpktablename,
1364
+ sdint2 cbpktablename,
1365
+ udbyte* szfkcatalogname,
1366
+ sdint2 cbfkcatalogname,
1367
+ udbyte* szfkschemaname,
1368
+ sdint2 cbfkschemaname,
1369
+ udbyte* szfktablename,
1370
+ sdint2 cbfktablename
1371
+ );
1372
+
1373
+ DllExport
1374
+ DPIRETURN
1375
+ dpi_tableprivileges(
1376
+ dhstmt dpi_stmt,
1377
+ udbyte* catalogname,
1378
+ sdint2 namelength1,
1379
+ udbyte* schemaname,
1380
+ sdint2 namelength2,
1381
+ udbyte* tablename,
1382
+ sdint2 namelength3
1383
+ );
1384
+
1385
+ DllExport
1386
+ DPIRETURN
1387
+ dpi_columnprivileges(
1388
+ dhstmt dpi_stmt,
1389
+ udbyte* catalogname,
1390
+ sdint2 namelength1,
1391
+ udbyte* schemaname,
1392
+ sdint2 namelength2,
1393
+ udbyte* tablename,
1394
+ sdint2 namelength3,
1395
+ udbyte* columnname,
1396
+ sdint2 namelength4
1397
+ );
1398
+
1399
+ DllExport
1400
+ DPIRETURN
1401
+ dpi_procedures(
1402
+ dhstmt dpi_stmt,
1403
+ udbyte* catalogname,
1404
+ sdint2 namelength1,
1405
+ udbyte* schemaname,
1406
+ sdint2 namelength2,
1407
+ udbyte* procname,
1408
+ sdint2 namelength3
1409
+ );
1410
+
1411
+ DllExport
1412
+ DPIRETURN
1413
+ dpi_procedurecolumns(
1414
+ dhstmt dpi_stmt,
1415
+ udbyte* catalogname,
1416
+ sdint2 namelength1,
1417
+ udbyte* schemaname,
1418
+ sdint2 namelength2,
1419
+ udbyte* procname,
1420
+ sdint2 namelength3,
1421
+ udbyte* columnname,
1422
+ sdint2 namelength4
1423
+ );
1424
+
1425
+ DllExport
1426
+ DPIRETURN
1427
+ dpi_columns2(
1428
+ dhstmt dpi_stmt,
1429
+ udbyte* catalogname,
1430
+ sdint2 namelength1,
1431
+ udbyte* schemaname,
1432
+ sdint2 namelength2,
1433
+ udbyte* tablename,
1434
+ sdint2 namelength3,
1435
+ udbyte* columnname,
1436
+ sdint2 namelength4
1437
+ );
1438
+
1439
+ DllExport
1440
+ DPIRETURN
1441
+ dpi_specialcolumns2(
1442
+ dhstmt dpi_stmt,
1443
+ udint2 identifiertype,
1444
+ udbyte* catalogname,
1445
+ sdint2 namelength1,
1446
+ udbyte* schemaname,
1447
+ sdint2 namelength2,
1448
+ udbyte* tablename,
1449
+ sdint2 namelength3,
1450
+ udint2 scope,
1451
+ udint2 nullable
1452
+ );
1453
+
1454
+ DllExport
1455
+ DPIRETURN
1456
+ dpi_procedurecolumns2(
1457
+ dhstmt dpi_stmt,
1458
+ udbyte* catalogname,
1459
+ sdint2 namelength1,
1460
+ udbyte* schemaname,
1461
+ sdint2 namelength2,
1462
+ udbyte* procname,
1463
+ sdint2 namelength3,
1464
+ udbyte* columnname,
1465
+ sdint2 namelength4
1466
+ );
1467
+
1468
+ DllExport
1469
+ DPIRETURN
1470
+ dpi_build_rowid(
1471
+ dhcon dpi_con,
1472
+ sdint4 epno,
1473
+ sdint8 partno,
1474
+ udint8 real_rowid,
1475
+ sdbyte* rowid_buf,
1476
+ udint4 rowid_buf_len,
1477
+ udint4* rowid_len
1478
+ );
1479
+
1480
+ DllExport
1481
+ DPIRETURN
1482
+ dpi_rowid_to_char(
1483
+ dhcon dpi_con,
1484
+ sdbyte* rowid,
1485
+ udint4 rowid_len,
1486
+ sdbyte* dest_buf,
1487
+ udint4 dest_buf_len,
1488
+ udint4* dest_len
1489
+ );
1490
+
1491
+ DllExport
1492
+ DPIRETURN
1493
+ dpi_char_to_rowid(
1494
+ dhcon dpi_con,
1495
+ sdbyte* rowid_str,
1496
+ udint4 rowid_len,
1497
+ sdbyte* dest_buf,
1498
+ udint4 dest_buf_len,
1499
+ udint4* dest_len
1500
+ );
1501
+
1502
+ #ifdef __cplusplus
1503
+ } /* End of extern "C" { */
1504
+ #endif /* __cplusplus */
1505
+ #endif /* #ifndef _DPI_H */
1506
+