1463 lines
38 KiB
C
1463 lines
38 KiB
C
//-----------------------------------------------------------------------------
|
|
// File: DPI.h
|
|
//
|
|
// Contents: This is the the main include for DM API programing.
|
|
//
|
|
// Comments: preconditions: NONE
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _DPI_H
|
|
#define _DPI_H
|
|
|
|
/*
|
|
* DPIVER DPI version number (0x0101).
|
|
*/
|
|
#ifndef DPIVER
|
|
#define DPIVER 0x0101
|
|
#endif
|
|
|
|
#ifndef __DPITYPES
|
|
#include "DPItypes.h"
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" { /* Assume C declarations for C++ */
|
|
#endif /* __cplusplus */
|
|
|
|
#if defined (_WINDOWS) || defined (WIN32)
|
|
#ifndef DllImport
|
|
#define DllImport __declspec( dllimport )
|
|
#endif
|
|
|
|
#ifndef DllExport
|
|
#define DllExport __declspec( dllexport )
|
|
#endif
|
|
#else
|
|
#define DllImport
|
|
#define DllExport
|
|
#endif
|
|
|
|
/* special length/indicator values */
|
|
#define DSQL_NULL_DATA (-1)
|
|
#define DSQL_DATA_AT_EXEC (-2)
|
|
#define DSQL_DEFAULT_PARAM (-5)
|
|
#define DSQL_COLUMN_IGNORE (-6)
|
|
|
|
/* return values from functions */
|
|
#define DSQL_SUCCESS 0
|
|
#define DSQL_SUCCESS_WITH_INFO 1
|
|
#define DSQL_NO_DATA 100
|
|
#define DSQL_ERROR (-1)
|
|
#define DSQL_INVALID_HANDLE (-2)
|
|
|
|
#define DSQL_STILL_EXECUTING 2
|
|
#define DSQL_NEED_DATA 99
|
|
#define DSQL_PARAM_DATA_AVAILABLE 101
|
|
|
|
/* defines for diagnostics fields */
|
|
/* diagnose head field identifier */
|
|
#define DSQL_DIAG_NUMBER (1)
|
|
#define DSQL_DIAG_DYNAMIC_FUNCTION_CODE (2)
|
|
#define DSQL_DIAG_ROW_COUNT (3)
|
|
#define DSQL_DIAG_PRINT_INFO (4)
|
|
#define DSQL_DIAG_EXPLAIN (5)
|
|
#define DSQL_DIAG_ROWID (6)
|
|
#define DSQL_DIAG_EXECID (7)
|
|
#define DSQL_DIAG_SERVER_STAT (8)
|
|
|
|
/* diagnose record field identifier*/
|
|
#define DSQL_DIAG_COLUMN_NUMBER (101)
|
|
#define DSQL_DIAG_MESSAGE_TEXT (102)
|
|
#define DSQL_DIAG_ERROR_CODE (103)
|
|
#define DSQL_DIAG_ROW_NUMBER (104)
|
|
|
|
//If dpi_row_count or diagnose cannot return exactly row count
|
|
#define DSQL_ROW_COUNT_UNKNOWN (-99)
|
|
|
|
/* test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO */
|
|
#define DSQL_SUCCEEDED(rc) (((rc)&(~1))==0)
|
|
|
|
/* flags for null-terminated string */
|
|
#define DSQL_NTS (-3)
|
|
#define DSQL_NTSL (-3L)
|
|
|
|
/* handle type identifiers */
|
|
#define DSQL_HANDLE_ENV 1
|
|
#define DSQL_HANDLE_DBC 2
|
|
#define DSQL_HANDLE_STMT 3
|
|
#define DSQL_HANDLE_DESC 4
|
|
#define DSQL_HANDLE_LOB_LOCATOR 5
|
|
#define DSQL_HANDLE_OBJECT 6
|
|
#define DSQL_HANDLE_OBJDESC 7
|
|
#define DSQL_HANDLE_BFILE 8
|
|
|
|
//DM C TYPE DEFINE
|
|
#define DSQL_C_TYPE_INVALID (-1000)
|
|
#define DSQL_C_NCHAR 0 //with NULL terminate
|
|
#define DSQL_C_SSHORT 1
|
|
#define DSQL_C_USHORT 2
|
|
#define DSQL_C_SLONG 3
|
|
#define DSQL_C_ULONG 4
|
|
#define DSQL_C_FLOAT 5
|
|
#define DSQL_C_DOUBLE 6
|
|
#define DSQL_C_BIT 7
|
|
#define DSQL_C_STINYINT 8
|
|
#define DSQL_C_UTINYINT 9
|
|
#define DSQL_C_SBIGINT 10
|
|
#define DSQL_C_UBIGINT 11
|
|
#define DSQL_C_BINARY 12
|
|
#define DSQL_C_DATE 13
|
|
#define DSQL_C_TIME 14
|
|
#define DSQL_C_TIMESTAMP 15
|
|
#define DSQL_C_NUMERIC 16
|
|
#define DSQL_C_INTERVAL_YEAR 17
|
|
#define DSQL_C_INTERVAL_MONTH 18
|
|
#define DSQL_C_INTERVAL_DAY 19
|
|
#define DSQL_C_INTERVAL_HOUR 20
|
|
#define DSQL_C_INTERVAL_MINUTE 21
|
|
#define DSQL_C_INTERVAL_SECOND 22
|
|
#define DSQL_C_INTERVAL_YEAR_TO_MONTH 23
|
|
#define DSQL_C_INTERVAL_DAY_TO_HOUR 24
|
|
#define DSQL_C_INTERVAL_DAY_TO_MINUTE 25
|
|
#define DSQL_C_INTERVAL_DAY_TO_SECOND 26
|
|
#define DSQL_C_INTERVAL_HOUR_TO_MINUTE 27
|
|
#define DSQL_C_INTERVAL_HOUR_TO_SECOND 28
|
|
#define DSQL_C_INTERVAL_MINUTE_TO_SECOND 29
|
|
#define DSQL_C_DEFAULT 30
|
|
#define DSQL_C_CLASS 31
|
|
#define DSQL_C_RECORD 32
|
|
#define DSQL_C_ARRAY 33
|
|
#define DSQL_C_SARRAY 34
|
|
#define DSQL_C_LOB_HANDLE 999
|
|
#define DSQL_C_RSET 1000
|
|
#define DSQL_C_WCHAR 1001
|
|
#define DSQL_C_BFILE 1002
|
|
#define DSQL_C_CHAR 1003 //without NULL terminate
|
|
#define DSQL_C_BOOLEAN DSQL_C_SLONG
|
|
|
|
#ifdef DM64
|
|
#define DSQL_C_BOOKMARK DSQL_C_UBIGINT
|
|
#else
|
|
#define DSQL_C_BOOKMARK DSQL_C_ULONG
|
|
#endif
|
|
#define DSQL_C_VARBOOKMARK DSQL_C_BINARY
|
|
|
|
#define DSQL_IS_CTYPE_INTERVAL(type) (DSQL_C_INTERVAL_YEAR <= (type) && (type) <= DSQL_C_INTERVAL_MINUTE_TO_SECOND)
|
|
#define DSQL_IS_CTYPE_INTERVAL_YM(type) (type == DSQL_C_INTERVAL_YEAR || type == DSQL_C_INTERVAL_MONTH || type == DSQL_C_INTERVAL_YEAR_TO_MONTH)
|
|
#define DSQL_IS_CTYPE_INTERVAL_DT(type) (DSQL_IS_CTYPE_INTERVAL(type) && !DSQL_IS_TYPE_INTERVAL_YM(type))
|
|
#define DSQL_IS_CTYPE_DATETIME(type) (DSQL_C_DATE <= type && type <= DSQL_C_TIMESTAMP)
|
|
|
|
//DM SERVER TYPE DEFINE
|
|
#define DSQL_CHAR 1 /* CHAR */
|
|
#define DSQL_VARCHAR 2 /* VARCHAR */
|
|
#define DSQL_BIT 3 /* BIT STRING */
|
|
#define DSQL_TINYINT 5 /* 1 byte INT */
|
|
#define DSQL_SMALLINT 6 /* SMALL INTEGER, 2 bytes */
|
|
#define DSQL_INT 7 /* INTEGER 4 bytes */
|
|
#define DSQL_BIGINT 8 /* INTEGER 8 bytes */
|
|
#define DSQL_DEC 9 /* DECIMAL */
|
|
#define DSQL_FLOAT 10 /* FLOAT, SINGLE */
|
|
#define DSQL_DOUBLE 11 /* DOUBLE */
|
|
#define DSQL_BLOB 12 /* BINARY LARGE OBJECT */
|
|
#define DSQL_BOOLEAN 13 /* BOOLEAN */
|
|
#define DSQL_DATE 14 /* DATE*/
|
|
#define DSQL_TIME 15 /* TIME*/
|
|
#define DSQL_TIMESTAMP 16 /* DATE TIME */
|
|
#define DSQL_BINARY 17 /* BINARY */
|
|
#define DSQL_VARBINARY 18 /* VAR BINARY */
|
|
#define DSQL_CLOB 19 /* TEXT */
|
|
#define DSQL_TIME_TZ 22 /* TIME WITH TIME ZONE*/
|
|
#define DSQL_TIMESTAMP_TZ 23 /* TIMESTAMP WITH TIME ZONE*/
|
|
#define DSQL_CLASS 24
|
|
#define DSQL_RECORD 25
|
|
#define DSQL_ARRAY 26
|
|
#define DSQL_SARRAY 27
|
|
#define DSQL_ROWID 28 /* ROWID*/
|
|
#define DSQL_RSET 119 /* RESULT SET*/
|
|
#define DSQL_BFILE 1000 /* BFILE*/
|
|
|
|
#define DSQL_INTERVAL_TYPE_BASE 100
|
|
#define DSQL_INTERVAL_TYPE_END 112
|
|
#define DSQL_INTERVAL_YEAR DSQL_INTERVAL_TYPE_BASE
|
|
#define DSQL_INTERVAL_MONTH (DSQL_INTERVAL_TYPE_BASE + 1)
|
|
#define DSQL_INTERVAL_DAY (DSQL_INTERVAL_TYPE_BASE + 2)
|
|
#define DSQL_INTERVAL_HOUR (DSQL_INTERVAL_TYPE_BASE + 3)
|
|
#define DSQL_INTERVAL_MINUTE (DSQL_INTERVAL_TYPE_BASE + 4)
|
|
#define DSQL_INTERVAL_SECOND (DSQL_INTERVAL_TYPE_BASE + 5)
|
|
#define DSQL_INTERVAL_YEAR_TO_MONTH (DSQL_INTERVAL_TYPE_BASE + 6)
|
|
#define DSQL_INTERVAL_DAY_TO_HOUR (DSQL_INTERVAL_TYPE_BASE + 7)
|
|
#define DSQL_INTERVAL_DAY_TO_MINUTE (DSQL_INTERVAL_TYPE_BASE + 8)
|
|
#define DSQL_INTERVAL_DAY_TO_SECOND (DSQL_INTERVAL_TYPE_BASE + 9)
|
|
#define DSQL_INTERVAL_HOUR_TO_MINUTE (DSQL_INTERVAL_TYPE_BASE + 10)
|
|
#define DSQL_INTERVAL_HOUR_TO_SECOND (DSQL_INTERVAL_TYPE_BASE + 11)
|
|
#define DSQL_INTERVAL_MINUTE_TO_SECOND (DSQL_INTERVAL_TYPE_BASE + 12)
|
|
|
|
#define DSQL_IS_TYPE_INTERVAL(type) (DSQL_INTERVAL_TYPE_BASE <= (type) && (type) <= DSQL_INTERVAL_TYPE_END)
|
|
#define DSQL_IS_TYPE_INTERVAL_YM(type) (type == DSQL_INTERVAL_YEAR || type == DSQL_INTERVAL_MONTH || type == DSQL_INTERVAL_YEAR_TO_MONTH)
|
|
#define DSQL_IS_TYPE_INTERVAL_DT(type) (DSQL_IS_TYPE_INTERVAL(type) && !DSQL_IS_TYPE_INTERVAL_YM(type))
|
|
#define DSQL_IS_TYPE_DATETIME(type) (DSQL_DATE <= type && type <= DSQL_TIMESTAMP)
|
|
|
|
//diagnose function code definition
|
|
#define DSQL_DIAG_FUNC_CODE_INVALID 0
|
|
#define DSQL_DIAG_FUNC_CODE_SELECT 1
|
|
#define DSQL_DIAG_FUNC_CODE_INSERT 2
|
|
#define DSQL_DIAG_FUNC_CODE_DELETE 3
|
|
#define DSQL_DIAG_FUNC_CODE_UPDATE 4
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_DB 5
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_TAB 6
|
|
#define DSQL_DIAG_FUNC_CODE_DROP_TAB 7
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_VIEW 8
|
|
#define DSQL_DIAG_FUNC_CODE_DROP_VIEW 9
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_INDEX 10
|
|
#define DSQL_DIAG_FUNC_CODE_DROP_INDEX 11
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_USER 12
|
|
#define DSQL_DIAG_FUNC_CODE_DROP_USER 13
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_ROLE 14
|
|
#define DSQL_DIAG_FUNC_CODE_DROP_ROLE 15
|
|
#define DSQL_DIAG_FUNC_CODE_COMMIT 16
|
|
#define DSQL_DIAG_FUNC_CODE_ROLLBACK 17
|
|
#define DSQL_DIAG_FUNC_CODE_EXPLAIN 18
|
|
#define DSQL_DIAG_FUNC_CODE_SET_TRX 19
|
|
#define DSQL_DIAG_FUNC_CODE_SAVE_POINT 20
|
|
#define DSQL_DIAG_FUNC_CODE_DROP 21
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_DB 22
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_USER 23
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_FUNC 24
|
|
#define DSQL_DIAG_FUNC_CODE_SET_CURRENT_DB 25
|
|
#define DSQL_DIAG_FUNC_CODE_GRANT 26
|
|
#define DSQL_DIAG_FUNC_CODE_REVOKE 27
|
|
#define DSQL_DIAG_FUNC_CODE_CALL 28
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_TAB 29
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_SCHEMA 30
|
|
#define DSQL_DIAG_FUNC_CODE_AUDIT 31
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_TRIGGER 32
|
|
#define DSQL_DIAG_FUNC_CODE_SELECT_INTO 33
|
|
#define DSQL_DIAG_FUNC_CODE_FETCH 34
|
|
#define DSQL_DIAG_FUNC_CODE_CLOSE_CURSOR 35
|
|
#define DSQL_DIAG_FUNC_CODE_TRUNC_TAB 36
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_SEQUENCE 37
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_LOGIN 38
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_LOGIN 39
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_CONTEXT_INDEX 40
|
|
#define DSQL_DIAG_FUNC_CODE_DROP_CONTEXT_INDEX 41
|
|
#define DSQL_DIAG_FUNC_CODE_ALT_CONTER_INDEX 42
|
|
#define DSQL_DIAG_FUNC_CODE_CURSOR_DELETE 43
|
|
#define DSQL_DIAG_FUNC_CODE_CURSOR_UPDATE 44
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_LINK 45
|
|
#define DSQL_DIAG_FUNC_CODE_LOCK_TAB 46
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_POLICY 47
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_POLICY 48
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_USER_POLICY 49
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_TABLE_POLICY 50
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_RULE 51
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_OPERATOR 52
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_ALERT 53
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_JOB 54
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_OPERATOR 55
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_ALERT 56
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_JOB 57
|
|
#define DSQL_DIAG_FUNC_CODE_SET_IDENTINS 58
|
|
#define DSQL_DIAG_FUNC_CODE_BACKUP_DATABASE 59
|
|
#define DSQL_DIAG_FUNC_CODE_RESTORE_DATABASE 60
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_PACKAGE 61
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_PACKAGE_BODY 62
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_TYPE 63
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_TYPE_BODY 64
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_SYNONYM 65
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_CRYPT 66
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_CRYPT 67
|
|
#define DSQL_DIAG_FUNC_CODE_SET_CURRENT_SCHEMA 68
|
|
#define DSQL_DIAG_FUNC_CODE_MERGE 69
|
|
#define DSQL_DIAG_FUNC_CODE_SET_TIME_ZONE 70
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_TABLESPACE 71
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_TABLESPACE 72
|
|
#define DSQL_DIAG_FUNC_CODE_COMMENT 73
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_SESSION 74
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_DOMAIN 75
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_CHARSET 76
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_COLLATION 77
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_CONTEXT 78
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_INDEX 79
|
|
#define DSQL_DIAG_FUNC_CODE_STAT_ON 80
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_PROCEDURE 81
|
|
#define DSQL_DIAG_FUNC_CODE_ALT_SESS_TIMESTAMP_FMT 82
|
|
#define DSQL_DIAG_FUNC_CODE_ALT_SESS_TIMESTAMP_TZ_FMT 83
|
|
#define DSQL_DIAG_FUNC_CODE_ALT_SESS_TIME_FMT 84
|
|
#define DSQL_DIAG_FUNC_CODE_ALT_SESS_DATE_FMT 85
|
|
#define DSQL_DIAG_FUNC_CODE_ALT_SESS_TIME_TZ_FMT 86
|
|
#define DSQL_DIAG_FUNC_CODE_ALT_SESS_DATE_LANGUAGE 87
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_PROFILE 88
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_PROFILE 89
|
|
#define DSQL_DIAG_FUNC_CODE_DROP_PROFILE 90
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_DIRECTORY 91 /* create directory */
|
|
#define DSQL_DIAG_FUNC_CODE_BEGIN_TRAN 92 /* begin transaction */
|
|
#define DSQL_DIAG_FUNC_CODE_CREATE_OPRT 93 // create operator
|
|
#define DSQL_DIAG_FUNC_CODE_DROP_OPRT 94 // drop operator
|
|
#define DSQL_DIAG_FUNC_CODE_CPART_GROUP 95 // create partition group
|
|
#define DSQL_DIAG_FUNC_CODE_ALTER_FUNCTION 96 // alter function
|
|
|
|
/* internal representation of numeric data type */
|
|
#define DPI_MAX_NUMERIC_LEN 16
|
|
typedef struct dpi_numeric_struct dpi_numeric_t;
|
|
struct dpi_numeric_struct
|
|
{
|
|
udbyte precision;
|
|
sdbyte scale;
|
|
udbyte sign; /* 1 if positive, 0 if negative */
|
|
udbyte val[DPI_MAX_NUMERIC_LEN];
|
|
};
|
|
|
|
typedef struct dpi_date_struct dpi_date_t;
|
|
struct dpi_date_struct
|
|
{
|
|
sdint2 year;
|
|
udint2 month;
|
|
udint2 day;
|
|
};
|
|
|
|
typedef struct dpi_time_struct dpi_time_t;
|
|
struct dpi_time_struct
|
|
{
|
|
udint2 hour;
|
|
udint2 minute;
|
|
udint2 second;
|
|
};
|
|
|
|
typedef struct dpi_timestamp_struct dpi_timestamp_t;
|
|
struct dpi_timestamp_struct
|
|
{
|
|
sdint2 year;
|
|
udint2 month;
|
|
udint2 day;
|
|
udint2 hour;
|
|
udint2 minute;
|
|
udint2 second;
|
|
udint4 fraction;
|
|
};
|
|
|
|
typedef enum
|
|
{
|
|
DSQL_IS_YEAR = 1,
|
|
DSQL_IS_MONTH = 2,
|
|
DSQL_IS_DAY = 3,
|
|
DSQL_IS_HOUR = 4,
|
|
DSQL_IS_MINUTE = 5,
|
|
DSQL_IS_SECOND = 6,
|
|
DSQL_IS_YEAR_TO_MONTH = 7,
|
|
DSQL_IS_DAY_TO_HOUR = 8,
|
|
DSQL_IS_DAY_TO_MINUTE = 9,
|
|
DSQL_IS_DAY_TO_SECOND = 10,
|
|
DSQL_IS_HOUR_TO_MINUTE = 11,
|
|
DSQL_IS_HOUR_TO_SECOND = 12,
|
|
DSQL_IS_MINUTE_TO_SECOND = 13
|
|
} DPIINTERVAL;
|
|
|
|
typedef struct dpi_year_month_struct dpi_year_month_t;
|
|
struct dpi_year_month_struct
|
|
{
|
|
udint4 year;
|
|
udint4 month;
|
|
};
|
|
|
|
typedef struct dpi_day_second_struct dpi_day_second_t;
|
|
struct dpi_day_second_struct
|
|
{
|
|
udint4 day;
|
|
udint4 hour;
|
|
udint4 minute;
|
|
udint4 second;
|
|
udint4 fraction;
|
|
};
|
|
|
|
typedef struct dpi_interval_struct dpi_interval_t;
|
|
struct dpi_interval_struct
|
|
{
|
|
DPIINTERVAL interval_type;
|
|
sdint2 interval_sign; //1:- 0:+
|
|
union {
|
|
dpi_year_month_t year_month;
|
|
dpi_day_second_t day_second;
|
|
} intval;
|
|
};
|
|
|
|
/* environment attribute */
|
|
#define DSQL_ATTR_OUTPUT_NTS 10001
|
|
|
|
/* connection attributes */
|
|
#define DSQL_ATTR_AUTO_IPD 10001
|
|
|
|
/* statement attributes */
|
|
#define DSQL_ATTR_APP_ROW_DESC 10010
|
|
#define DSQL_ATTR_APP_PARAM_DESC 10011
|
|
#define DSQL_ATTR_IMP_ROW_DESC 10012
|
|
#define DSQL_ATTR_IMP_PARAM_DESC 10013
|
|
#define DSQL_ATTR_METADATA_ID 10014
|
|
#define DSQL_ATTR_CURSOR_SCROLLABLE (-1)
|
|
#define DSQL_ATTR_CURSOR_SENSITIVITY (-2)
|
|
#define DSQL_ATTR_SQL_CHARSET (20000)
|
|
#define DSQL_ATTR_IGN_BP_ERR (20001)
|
|
#define DSQL_ATTR_BP_MAX_ERRS (20002)
|
|
#define DSQL_ATTR_ROW_IND_BIND_TYPE (20003)
|
|
#define DSQL_ATTR_PARAM_IND_BIND_TYPE (20004)
|
|
#define DSQL_ATTR_FETCH_PACKAGE_SIZE (20005)
|
|
#define DSQL_ATTR_PARAM_AFFECT_ROWS_PTR (20006)
|
|
|
|
/* DSQL_ATTR_CURSOR_SCROLLABLE values */
|
|
#define DSQL_NONSCROLLABLE 0
|
|
#define DSQL_SCROLLABLE 1
|
|
|
|
/* identifiers of fields in the SQL descriptor */
|
|
#define DSQL_DESC_COUNT 1001
|
|
#define DSQL_DESC_TYPE 1002
|
|
#define DSQL_DESC_LENGTH 1003
|
|
#define DSQL_DESC_OCTET_LENGTH_PTR 1004
|
|
#define DSQL_DESC_PRECISION 1005
|
|
#define DSQL_DESC_SCALE 1006
|
|
#define DSQL_DESC_DATETIME_INTERVAL_CODE 1007
|
|
#define DSQL_DESC_NULLABLE 1008
|
|
#define DSQL_DESC_INDICATOR_PTR 1009
|
|
#define DSQL_DESC_DATA_PTR 1010
|
|
#define DSQL_DESC_NAME 1011
|
|
#define DSQL_DESC_UNNAMED 1012
|
|
#define DSQL_DESC_OCTET_LENGTH 1013
|
|
#define DSQL_DESC_ALLOC_TYPE 1099
|
|
|
|
/* Statement attribute values for cursor sensitivity */
|
|
#define DSQL_UNSPECIFIED 0
|
|
#define DSQL_INSENSITIVE 1
|
|
#define DSQL_SENSITIVE 2
|
|
|
|
/* Default conversion code for dpi_bind_col(), dpi_bind_param() and dpi_get_data() */
|
|
#define DSQL_DEFAULT 99
|
|
|
|
/* dpi_get_data() code indicating that the application row descriptor
|
|
* specifies the data type
|
|
*/
|
|
#define DSQL_ARD_TYPE (-99)
|
|
|
|
#define DSQL_FALSE 0
|
|
#define DSQL_TRUE 1
|
|
|
|
/* values of NULLABLE field in descriptor */
|
|
#define DSQL_NO_NULLS 0
|
|
#define DSQL_NULLABLE 1
|
|
|
|
/* Values returned to show WHERE clause
|
|
* supported
|
|
*/
|
|
#define DSQL_PRED_NONE 0
|
|
#define DSQL_PRED_CHAR 1
|
|
#define DSQL_PRED_BASIC 2
|
|
#define DSQL_PRED_SEARCHABLE 3
|
|
|
|
/* values of UNNAMED field in descriptor */
|
|
#define DSQL_NAMED 0
|
|
#define DSQL_UNNAMED 1
|
|
|
|
/* values of ALLOC_TYPE field in descriptor */
|
|
#define DSQL_DESC_ALLOC_AUTO 1
|
|
#define DSQL_DESC_ALLOC_USER 2
|
|
|
|
/* Codes used for FetchOrientation in dpi_fetch_scroll()
|
|
*/
|
|
#define DSQL_FETCH_NEXT 1
|
|
#define DSQL_FETCH_FIRST 2
|
|
|
|
/* Other codes used for FetchOrientation in dpi_fetch_scroll() */
|
|
#define DSQL_FETCH_LAST 3
|
|
#define DSQL_FETCH_PRIOR 4
|
|
#define DSQL_FETCH_ABSOLUTE 5
|
|
#define DSQL_FETCH_RELATIVE 6
|
|
#define DSQL_FETCH_BOOKMARK 8
|
|
|
|
/* dpi_end_tran() options */
|
|
#define DSQL_COMMIT 0
|
|
#define DSQL_ROLLBACK 1
|
|
|
|
/* null handles returned by dpi_alloc_handle() */
|
|
#define DSQL_NULL_HENV 0
|
|
#define DSQL_NULL_HDBC 0
|
|
#define DSQL_NULL_HSTMT 0
|
|
#define DSQL_NULL_HDESC 0
|
|
#define DSQL_NULL_HLOB 0
|
|
|
|
/* null handle used in place of parent handle when allocating HENV */
|
|
#define DSQL_NULL_HANDLE 0L
|
|
|
|
|
|
//#define ISO_LEVEL_INVALID (-1)
|
|
#define ISO_LEVEL_READ_UNCOMMITTED 0
|
|
#define ISO_LEVEL_READ_COMMITTED 1
|
|
#define ISO_LEVEL_REPEATABLE_READ 2
|
|
#define ISO_LEVEL_SERIALIZABLE 3
|
|
|
|
/* Reserved values for UNIQUE argument of dpi_statistics() */
|
|
#define DSQL_INDEX_UNIQUE 0
|
|
|
|
/* Values that may appear in the result set of dpi_specialcolumns() */
|
|
#define DSQL_SCOPE_CURROW 0
|
|
|
|
/* Column types and scopes in dpi_specialcolumns(). */
|
|
#define DSQL_BEST_ROWID 1
|
|
#define DSQL_ROWVER 2
|
|
|
|
//DPI call interface
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_module_init();
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_module_deinit();
|
|
|
|
//handle function
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_alloc_handle(
|
|
sdint2 hndl_type,
|
|
dhandle hndl_in,
|
|
dhandle* hndl_out
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_free_handle(
|
|
sdint2 hndl_type,
|
|
dhandle hndl
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_alloc_env(
|
|
dhenv* dpi_henv
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_alloc_con(
|
|
dhenv dpi_henv,
|
|
dhcon* dpi_hcon
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_alloc_stmt(
|
|
dhcon dpi_hcon,
|
|
dhstmt* dpi_hstmt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_alloc_desc(
|
|
dhcon dpi_hcon,
|
|
dhdesc* dpi_hdesc
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_alloc_lob_locator(
|
|
dhstmt dpi_hstmt,
|
|
dhloblctr* dpi_loblctr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_alloc_lob_locator2(
|
|
dhcon dpi_hcon,
|
|
dhloblctr* dpi_loblctr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_alloc_bfile(
|
|
dhcon dpi_hcon,
|
|
dhbfile* dpi_loblctr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_free_env(
|
|
dhenv dpi_henv
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_free_con(
|
|
dhcon dpi_hcon
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_free_stmt(
|
|
dhstmt dpi_hstmt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_free_desc(
|
|
dhdesc dpi_hdesc
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_free_lob_locator(
|
|
dhloblctr dpi_loblctr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_free_bfile(
|
|
dhbfile bfile_lctr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_set_env_attr(
|
|
dhenv dpi_henv,
|
|
sdint4 attr_id,
|
|
dpointer val,
|
|
sdint4 val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_set_con_attr(
|
|
dhcon dpi_hcon,
|
|
sdint4 attr_id,
|
|
dpointer val,
|
|
sdint4 val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_set_stmt_attr(
|
|
dhstmt dpi_hstmt,
|
|
sdint4 attr_id,
|
|
dpointer val,
|
|
sdint4 val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_env_attr(
|
|
dhenv dpi_henv,
|
|
sdint4 attr_id,
|
|
dpointer val,
|
|
sdint4 buf_len,
|
|
sdint4* val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_con_attr(
|
|
dhcon dpi_hcon,
|
|
sdint4 attr_id,
|
|
dpointer val,
|
|
sdint4 buf_len,
|
|
sdint4* val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_stmt_attr(
|
|
dhstmt dpi_hstmt,
|
|
sdint4 attr_id,
|
|
dpointer val,
|
|
sdint4 buf_len,
|
|
sdint4* val_len
|
|
);
|
|
|
|
//diagnose functions
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_diag_rec(
|
|
sdint2 hndl_type,
|
|
dhandle hndl,
|
|
sdint2 rec_num,
|
|
sdint4* err_code,
|
|
sdbyte* err_msg,
|
|
sdint2 buf_sz,
|
|
sdint2* msg_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_diag_field(
|
|
sdint2 hndl_type,
|
|
dhandle hndl,
|
|
sdint2 rec_num,
|
|
sdint2 diag_id,
|
|
dpointer diag_info,
|
|
slength buf_len,
|
|
slength* info_len
|
|
);
|
|
|
|
//connection functions
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_login(
|
|
dhcon dpi_hcon,
|
|
sdbyte* svr,
|
|
sdbyte* user,
|
|
sdbyte* pwd
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_logout(
|
|
dhcon dpi_hcon
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_commit(
|
|
dhcon dpi_hcon
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_rollback(
|
|
dhcon dpi_hcon
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_end_tran(
|
|
sdint2 hndl_type, //in
|
|
dhandle hndl, //in
|
|
sdint2 type
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_cancel(
|
|
dhstmt dpi_hstmt
|
|
);
|
|
|
|
//descripton functions
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_copy_desc(
|
|
dhdesc src_desc,
|
|
dhdesc target_desc
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_set_desc_rec(
|
|
dhdesc dpi_desc,
|
|
udint2 rec_num,
|
|
sdint2 type,
|
|
sdint2 sub_type,
|
|
slength length,
|
|
sdint2 prec,
|
|
sdint2 scale,
|
|
dpointer data_ptr,
|
|
slength* str_len,
|
|
slength* ind_ptr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_set_desc_field(
|
|
dhdesc dpi_desc,
|
|
udint2 rec_num,
|
|
sdint2 field,
|
|
dpointer val,
|
|
sdint4 val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_desc_rec(
|
|
dhdesc dpi_desc,
|
|
udint2 rec_num,
|
|
sdbyte* name_buf,
|
|
sdint2 name_buf_len,
|
|
sdint2* name_len,
|
|
sdint2* type,
|
|
sdint2* sub_type,
|
|
slength* length,
|
|
sdint2* prec,
|
|
sdint2* scale,
|
|
sdint2* nullable
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_desc_field(
|
|
dhdesc dpi_desc,
|
|
udint2 rec_num,
|
|
sdint2 field,
|
|
dpointer val,
|
|
sdint4 val_len,
|
|
sdint4* str_len
|
|
);
|
|
|
|
//statement function
|
|
//statement execution operation
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_bind_param(
|
|
dhstmt dpi_hstmt,
|
|
udint2 iparam, //1-based index
|
|
sdint2 param_type,
|
|
sdint2 ctype,
|
|
sdint2 dtype,
|
|
ulength precision,
|
|
sdint2 scale,
|
|
dpointer buf,
|
|
slength buf_len,
|
|
slength* ind_ptr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_bind_param2(
|
|
dhstmt dpi_hstmt,
|
|
udint2 iparam, //1-based index
|
|
sdint2 param_type,
|
|
sdint2 ctype,
|
|
sdint2 dtype,
|
|
ulength precision,
|
|
sdint2 scale,
|
|
dpointer buf,
|
|
slength buf_len,
|
|
slength* ind_ptr,
|
|
slength* act_len_ptr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_desc_param(
|
|
dhstmt dpi_hstmt,
|
|
udint2 iparam, //1-based
|
|
sdint2* sql_type,
|
|
ulength* prec,
|
|
sdint2* scale,
|
|
sdint2* nullable
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_exec(
|
|
dhstmt dpi_hstmt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_exec_direct(
|
|
dhstmt dpi_hstmt,
|
|
sdbyte* sql_txt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_exec_add_batch(
|
|
dhstmt dpi_hstmt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_exec_batch(
|
|
dhstmt dpi_hstmt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_unbind_params(
|
|
dhstmt dpi_hstmt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_unbind_columns(
|
|
dhstmt dpi_hstmt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_param_data(
|
|
dhstmt dpi_hstmt,
|
|
dpointer* val_ptr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_prepare(
|
|
dhstmt dpi_hstmt,
|
|
sdbyte* sql_txt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_put_data(
|
|
dhstmt dpi_hstmt,
|
|
dpointer val,
|
|
slength val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_number_params(
|
|
dhstmt dpi_stmt,
|
|
udint2* param_cnt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_set_cursor_name(
|
|
dhstmt dpi_hstmt,
|
|
sdbyte* name,
|
|
sdint2 name_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_cursor_name(
|
|
dhstmt dpi_hstmt,
|
|
sdbyte* name,
|
|
sdint2 buf_len,
|
|
sdint2 *name_len
|
|
);
|
|
|
|
//statement resultset operation
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_close_cursor(
|
|
dhstmt dpi_hstmt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_bind_col(
|
|
dhstmt dpi_hstmt,
|
|
udint2 icol,
|
|
sdint2 ctype,
|
|
dpointer val,
|
|
slength buf_len,
|
|
slength* ind
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_bind_col2(
|
|
dhstmt dpi_hstmt,
|
|
udint2 icol,
|
|
sdint2 ctype,
|
|
dpointer val,
|
|
slength buf_len,
|
|
slength* ind,
|
|
slength* act_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_number_columns(
|
|
dhstmt dpi_stmt,
|
|
sdint2* col_cnt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_desc_column(
|
|
dhstmt dpi_hstmt,
|
|
sdint2 icol,
|
|
sdbyte* name,
|
|
sdint2 buf_len,
|
|
sdint2* name_len,
|
|
sdint2* sqltype,
|
|
ulength* col_sz,
|
|
sdint2* dec_digits,
|
|
sdint2* nullable
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_col_attr(
|
|
dhstmt dpi_hstmt,
|
|
udint2 icol,
|
|
udint2 fld_id,
|
|
dpointer chr_attr,
|
|
sdint2 buf_len,
|
|
sdint2* chr_attr_len,
|
|
slength* num_attr
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_bulk_operation(
|
|
dhstmt dpi_hstmt,
|
|
udint2 op
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_fetch(
|
|
dhstmt dpi_hstmt,
|
|
ulength* row_num
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_fetch_scroll(
|
|
dhstmt dpi_hstmt,
|
|
sdint2 orient,
|
|
slength offset,
|
|
ulength* row_num
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_data(
|
|
dhstmt dpi_hstmt,
|
|
udint2 icol,
|
|
sdint2 ctype,
|
|
dpointer val,
|
|
slength buf_len,
|
|
slength* val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_data2(
|
|
dhstmt dpi_hstmt,
|
|
udint2 icol,
|
|
sdint2 ctype,
|
|
dpointer val,
|
|
slength buf_len,
|
|
slength* val_len,
|
|
slength* act_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_more_results(
|
|
dhstmt dpi_hstmt
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_set_pos(
|
|
dhstmt dpi_hstmt,
|
|
ulength row_num,
|
|
udint2 op,
|
|
udint2 lock_type
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_row_count(
|
|
dhstmt dpi_hstmt,
|
|
sdint8* row_num
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_lob_get_length(
|
|
dhloblctr dpi_loblctr,
|
|
slength* len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_lob_get_length2(
|
|
dhloblctr dpi_loblctr,
|
|
sdint8* len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_lob_read(
|
|
dhloblctr dpi_loblctr,
|
|
ulength start_pos,
|
|
sdint2 ctype,
|
|
slength data_to_read,
|
|
dpointer val_buf,
|
|
slength buf_len,
|
|
slength* data_get
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_lob_read2(
|
|
dhloblctr dpi_loblctr,
|
|
udint8 start_pos,
|
|
sdint2 ctype,
|
|
slength data_to_read,
|
|
dpointer val_buf,
|
|
slength buf_len,
|
|
slength* data_get
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_lob_read3(
|
|
dhloblctr dpi_loblctr,
|
|
udint8 start_pos,
|
|
sdint2 ctype,
|
|
slength data_to_read,
|
|
dpointer val_buf,
|
|
slength buf_len,
|
|
slength* data_get,
|
|
slength* data_get_bytes
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_lob_write(
|
|
dhloblctr dpi_loblctr,
|
|
ulength start_pos,
|
|
sdint2 ctype,
|
|
dpointer val,
|
|
ulength bytes_to_write,
|
|
ulength* data_writed
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_lob_write2(
|
|
dhloblctr dpi_loblctr,
|
|
udint8 start_pos,
|
|
sdint2 ctype,
|
|
dpointer val,
|
|
ulength bytes_to_write,
|
|
ulength* data_writed
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_lob_truncate(
|
|
dhloblctr dpi_loblctr,
|
|
ulength len,
|
|
ulength* data_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_lob_truncate2(
|
|
dhloblctr dpi_loblctr,
|
|
udint8 len,
|
|
udint8* data_len
|
|
);
|
|
|
|
//////complex object
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_desc_obj(
|
|
dhcon dpi_con,
|
|
sdbyte* schema,
|
|
sdbyte* compobj_name,
|
|
dhobjdesc* obj_desc
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_desc_obj2(
|
|
dhcon dpi_con,
|
|
sdbyte* schema,
|
|
sdbyte* pkg_name,
|
|
sdbyte* compobj_name,
|
|
dhobjdesc* obj_desc
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_free_obj_desc(
|
|
dhobjdesc obj_desc
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_alloc_obj(
|
|
dhcon dpi_con,
|
|
dhobj* object
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_free_obj(
|
|
dhobj object
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_obj_attr(
|
|
dhobj object,
|
|
udint4 nth,
|
|
udint2 attr_id,
|
|
dpointer buf,
|
|
udint4 buf_len,
|
|
slength* len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_obj_desc_attr(
|
|
dhobjdesc obj_desc,
|
|
udint4 nth,
|
|
udint2 attr_id,
|
|
dpointer buf,
|
|
udint4 buf_len,
|
|
slength* len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_bind_obj_desc(
|
|
dhobj object,
|
|
dhobjdesc desc
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_unbind_obj_desc(
|
|
dhobj object
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_set_obj_val(
|
|
dhobj object,
|
|
udint4 nth,
|
|
udint2 ctype,
|
|
dpointer val,
|
|
slength val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_set_indtab_node(
|
|
dhobj object,
|
|
udint2 ktype,
|
|
dpointer key,
|
|
slength key_len,
|
|
udint2 vtype,
|
|
dpointer val,
|
|
slength val_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_get_obj_val(
|
|
dhobj object,
|
|
udint4 nth,
|
|
udint2 ctype,
|
|
dpointer val,
|
|
udint4 buf_len,
|
|
slength* val_len
|
|
);
|
|
|
|
////bfile
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_bfile_construct(
|
|
dhbfile bfile_lctr,
|
|
udbyte* dir_name,
|
|
udbyte* file_name
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_bfile_get_name(
|
|
dhbfile bfile_lctr,
|
|
udbyte* dir_buf,
|
|
udint4 dir_buf_len,
|
|
udint4* dir_len,
|
|
udbyte* file_buf,
|
|
udint4 file_buf_len,
|
|
udint4* file_len
|
|
);
|
|
|
|
DllExport DPIRETURN
|
|
dpi_bfile_read(
|
|
dhbfile dpi_bfile,
|
|
udint8 start_pos, //1 based:blob bytes clob chars
|
|
sdint2 ctype,
|
|
udint8 data_to_read, //0:default blob bytes clob chars
|
|
dpointer val_buf,
|
|
udint8 buf_len,
|
|
udint8* data_get //blob:bytes_get clob:chars
|
|
);
|
|
|
|
//catalog functions
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_tables(
|
|
dhstmt dpi_stmt,
|
|
udbyte* catalogname,
|
|
sdint2 namelength1,
|
|
udbyte* schemaname,
|
|
sdint2 namelength2,
|
|
udbyte* tablename,
|
|
sdint2 namelength3,
|
|
udbyte* tabletype,
|
|
sdint2 namelength4
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_columns(
|
|
dhstmt dpi_stmt,
|
|
udbyte* catalogname,
|
|
sdint2 namelength1,
|
|
udbyte* schemaname,
|
|
sdint2 namelength2,
|
|
udbyte* tablename,
|
|
sdint2 namelength3,
|
|
udbyte* columnname,
|
|
sdint2 namelength4
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_statistics(
|
|
dhstmt dpi_stmt,
|
|
udbyte* catalogname,
|
|
sdint2 namelength1,
|
|
udbyte* schemaname,
|
|
sdint2 namelength2,
|
|
udbyte* tablename,
|
|
sdint2 namelength3,
|
|
udint2 unique,
|
|
udint2 reserved
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_specialcolumns(
|
|
dhstmt dpi_stmt,
|
|
udint2 identifiertype,
|
|
udbyte* catalogname,
|
|
sdint2 namelength1,
|
|
udbyte* schemaname,
|
|
sdint2 namelength2,
|
|
udbyte* tablename,
|
|
sdint2 namelength3,
|
|
udint2 scope,
|
|
udint2 nullable
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_primarykeys(
|
|
dhstmt dpi_stmt,
|
|
udbyte* catalogname,
|
|
sdint2 namelength1,
|
|
udbyte* schemaname,
|
|
sdint2 namelength2,
|
|
udbyte* tablename,
|
|
sdint2 namelength3
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_foreignkeys(
|
|
dhstmt dpi_stmt,
|
|
udbyte* szpkcatalogname,
|
|
sdint2 cbpkcatalogname,
|
|
udbyte* szpkschemaname,
|
|
sdint2 cbpkschemaname,
|
|
udbyte* szpktablename,
|
|
sdint2 cbpktablename,
|
|
udbyte* szfkcatalogname,
|
|
sdint2 cbfkcatalogname,
|
|
udbyte* szfkschemaname,
|
|
sdint2 cbfkschemaname,
|
|
udbyte* szfktablename,
|
|
sdint2 cbfktablename
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_tableprivileges(
|
|
dhstmt dpi_stmt,
|
|
udbyte* catalogname,
|
|
sdint2 namelength1,
|
|
udbyte* schemaname,
|
|
sdint2 namelength2,
|
|
udbyte* tablename,
|
|
sdint2 namelength3
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_columnprivileges(
|
|
dhstmt dpi_stmt,
|
|
udbyte* catalogname,
|
|
sdint2 namelength1,
|
|
udbyte* schemaname,
|
|
sdint2 namelength2,
|
|
udbyte* tablename,
|
|
sdint2 namelength3,
|
|
udbyte* columnname,
|
|
sdint2 namelength4
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_procedures(
|
|
dhstmt dpi_stmt,
|
|
udbyte* catalogname,
|
|
sdint2 namelength1,
|
|
udbyte* schemaname,
|
|
sdint2 namelength2,
|
|
udbyte* procname,
|
|
sdint2 namelength3
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_procedurecolumns(
|
|
dhstmt dpi_stmt,
|
|
udbyte* catalogname,
|
|
sdint2 namelength1,
|
|
udbyte* schemaname,
|
|
sdint2 namelength2,
|
|
udbyte* procname,
|
|
sdint2 namelength3,
|
|
udbyte* columnname,
|
|
sdint2 namelength4
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_build_rowid(
|
|
dhcon dpi_con,
|
|
sdint4 epno,
|
|
sdint8 partno,
|
|
udint8 real_rowid,
|
|
sdbyte* rowid_buf,
|
|
udint4 rowid_buf_len,
|
|
udint4* rowid_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_rowid_to_char(
|
|
dhcon dpi_con,
|
|
sdbyte* rowid,
|
|
udint4 rowid_len,
|
|
sdbyte* dest_buf,
|
|
udint4 dest_buf_len,
|
|
udint4* dest_len
|
|
);
|
|
|
|
DllExport
|
|
DPIRETURN
|
|
dpi_char_to_rowid(
|
|
dhcon dpi_con,
|
|
sdbyte* rowid_str,
|
|
udint4 rowid_len,
|
|
sdbyte* dest_buf,
|
|
udint4 dest_buf_len,
|
|
udint4* dest_len
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
} /* End of extern "C" { */
|
|
#endif /* __cplusplus */
|
|
#endif /* #ifndef _DPI_H */
|
|
|