达梦数据库DPI接口常用句柄、宏、返回值信息

句柄

句柄是用于 DPI 函数申请和使用资源的变量。达梦 DPI 包含以下句柄:

句柄 说明 宏定义
dhenv 环境句柄 DSQL_HANDLE_ENV
dhcon 连接句柄 DSQL_HANDLE_DBC
dhstmt 语句句柄 DSQL_HANDLE_STMT
dhdesc 描述符句柄 DSQL_HANDLE_DESC
dhloblctr Lob 句柄 DSQL_HANDLE_LOB_LOCATOR
dhobj 复合类型句柄 DSQL_HANDLE_OBJECT
dhobjdesc 复合类型描述符句柄 DSQL_HANDLE_OBJDESC
dhbfile BFILE 文件句柄 DSQL_HANDLE_BFILE

返回值

DPI 的函数执行结果通过返回值来反馈给用户,DPI 包含以下返回值:

宏定义 说明
DSQL_SUCCESS 0 执行成功
DSQL_SUCCESS_WITH_INFO 1 执行成功,有警告信息
DSQL_NO_DATA 100 未取得数据
DSQL_ERROR -1 执行失败
DSQL_INVALID_HANDLE -2 非法的句柄
DSQL_NEED_DATA 99 需要数据
DSQL_STILL_EXECUTING 2 语句正在执行
DSQL_PARAM_DATA_AVAILABLE 101 有参数值可以获取

数据类型

数据类型为数据库中字段类型和 C 语言的数据类型。

DPI 中包括以下 DSQL 类型,对应对象创建时指定的类型:

宏定义 定义类型 说明
DSQL_CHAR char[(n)] 定长字符类型
DSQL_VARCHAR varchar(n) 变长字符类型
DSQL_BIT bit 位类型
DSQL_TINYINT tinyint 有符号小整型(1 字节)
DSQL_SMALLINT smallint 有符号短整型(2 字节)
DSQL_INT int 有符号整型(4 字节)
DSQL_BIGINT bigint 有符号长整型(8 字节)
DSQL_DEC dec[(p,s)] numeric[(p,s)] number[(p,s)] 精确数字类型
DSQL_FLOAT real 单精度浮点型
DSQL_DOUBLE float double 双精度浮点型
DSQL_BLOB blob image longvarbinary 二进制大字段
DSQL_DATE date 日期
DSQL_TIME time[(n)] 时间
DSQL_TIMESTAMP timestamp[(n)] 时间戳
DSQL_BINARY binary[(n)] 二进制类型
DSQL_VARBINARY varbinary[(n)] 变长二进制类型
DSQL_CLOB clob text longvarchar 字符大字段
DSQL_TIME_TZ time with time zone 带时区的时间类型
DSQL_TIMESTAMP_TZ timestamp with time zone 带时区的时间戳类型
DSQL_RSET cursor 结果集类型
DSQL_CLASS class class 复合类型
DSQL_RECORD record record 复合类型
DSQL_ARRAY array 动态 array
DSQL_SARRAY array 静态 array
DSQL_INTERVAL_YEAR interval year 年时间间隔类型
DSQL_INTERVAL_MONTH interval month 月时间间隔类型
DSQL_INTERVAL_DAY interval day 日时间间隔类型
DSQL_INTERVAL_HOUR interval hour 时时间间隔类型
DSQL_INTERVAL_MINUTE interval minute 分时间间隔类型
DSQL_INTERVAL_SECOND interval second 秒时间间隔类型
DSQL_INTERVAL_YEAR_TO_MONTH interval year to month 年转月 时间间隔类型
DSQL_INTERVAL_DAY_TO_HOUR interval day to hour 日转时 时间间隔类型
DSQL_INTERVAL_DAY_TO_MINUTE interval day to minute 日转分 时间间隔类型
DSQL_INTERVAL_DAY_TO_SECOND interval day to second 日转秒 时间间隔类型
DSQL_INTERVAL_HOUR_TO_MINUTE interval hour to minute 时转分 时间间隔类型
DSQL_INTERVAL_HOUR_TO_SECOND interval hour to second 时转秒 时间间隔类型
DSQL_INTERVAL_MINUTE_TO_SECOND interval minute to second 分转秒 时间间隔类型
DSQL_BOOLEAN boolean bool 类型

DPI 中包括以下 C 类型,对应绑定时使用的数据类型:

宏定义 类型 说明
DSQL_C_NCHAR char 字符类型
DSQL_C_SSHORT signed short 有符号短整型
DSQL_C_USHORT unsigned short 无符号短整型
DSQL_C_SLONG signed int 有符号整型
DSQL_C_ULONG unsigned int 无符号整型
DSQL_C_FLOAT float 单精度浮点型
DSQL_C_DOUBLE double 双精度浮点型
DSQL_C_BIT char 位类型
DSQL_C_STINYINT char 有符号小整型
DSQL_C_UTINYINT unsigned char 无符号小整型
DSQL_C_SBIGINT __int64 有符号长整型,注 1:在 Windows 操作系统下,C 中的定义为__int64,在其他操作系统下会有其他的表示方式
DSQL_C_UBIGINT unsigned__int64 无符号长整型
DSQL_C_BINARY unsigned char 二进制类型
DSQL_C_DATE dpi_date_t 日期类型
DSQL_C_TIME dpi_time_t 时间类型
DSQL_C_TIMESTAMP dpi_timestamp_t 日期时间类型
DSQL_C_NUMERIC dpi_numeric_t 数字类型
DSQL_C_INTERVAL_YEAR dpi_interval_t 年时间间隔类型
DSQL_C_INTERVAL_MONTH dpi_interval_t 月时间间隔类型
DSQL_C_INTERVAL_DAY dpi_interval_t 日时间间隔类型
DSQL_C_INTERVAL_HOUR dpi_interval_t 时时间间隔类型
DSQL_C_INTERVAL_MINUTE dpi_interval_t 分时间间隔类型
DSQL_C_INTERVAL_SECOND dpi_interval_t 秒时间间隔类型
DSQL_C_INTERVAL_YEAR_TO_MONTH dpi_interval_t 年转月 时间间隔类型
DSQL_C_INTERVAL_DAY_TO_HOUR dpi_interval_t 日转时 时间间隔类型
DSQL_C_INTERVAL_DAY_TO_MINUTE dpi_interval_t 日转分 时间间隔类型
DSQL_C_INTERVAL_DAY_TO_SECOND dpi_interval_t 日转秒 时间间隔类型
DSQL_C_INTERVAL_HOUR_TO_MINUTE dpi_interval_t 时转分 时间间隔类型
DSQL_C_INTERVAL_HOUR_TO_SECOND dpi_interval_t 时转秒 时间间隔类型
DSQL_C_INTERVAL_MINUTE_TO_SECOND dpi_interval_t 分转秒 时间间隔类型
DSQL_C_DEFAULT - 自动映射类型
DSQL_C_LOB_HANDLE dhloblctr 大字段句柄
DSQL_C_RSET dhstmt 结果集类型
DSQL_C_CLASS dhobj 复合对象类型
DSQL_C_RECORD dhobj 复合对象类型
DSQL_C_ARRAY dhobj 复合对象类型
DSQL_C_SARRAY dhobj 复合对象类型
DSQL_C_WCHAR wchar_t 宽字节类型
DSQL_C_BOOLEAN dboolean 有符号整形。有效值 0/1

诊断

函数调用的返回信息放在诊断区域中。每一个环境、连接、及描述符句柄都有一个诊断区域。在诊断区域的头字段返回一般的函数执行信息,它的记录字段记录函数调用的错误信息和警告。用户可以指定获取某一个记录的信息从而更准确地判断函数执行的情况。

数据来源达梦在线官方技术手册

你可能感兴趣的:(数据库,数据库,oracle)