达梦数据库DPI接口常用句柄、宏、返回值信息
2023-12-27 02:28:42
句柄
句柄是用于 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 |
诊断
函数调用的返回信息放在诊断区域中。每一个环境、连接、及描述符句柄都有一个诊断区域。在诊断区域的头字段返回一般的函数执行信息,它的记录字段记录函数调用的错误信息和警告。用户可以指定获取某一个记录的信息从而更准确地判断函数执行的情况。
数据来源达梦在线官方技术手册
文章来源:https://blog.csdn.net/qq_39974998/article/details/135233354
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!