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

发布时间:2023年12月27日

句柄

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

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

返回值

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

宏定义说明
DSQL_SUCCESS0执行成功
DSQL_SUCCESS_WITH_INFO1执行成功,有警告信息
DSQL_NO_DATA100未取得数据
DSQL_ERROR-1执行失败
DSQL_INVALID_HANDLE-2非法的句柄
DSQL_NEED_DATA99需要数据
DSQL_STILL_EXECUTING2语句正在执行
DSQL_PARAM_DATA_AVAILABLE101有参数值可以获取

数据类型

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

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

宏定义定义类型说明
DSQL_CHARchar[(n)]定长字符类型
DSQL_VARCHARvarchar(n)变长字符类型
DSQL_BITbit位类型
DSQL_TINYINTtinyint有符号小整型(1 字节)
DSQL_SMALLINTsmallint有符号短整型(2 字节)
DSQL_INTint有符号整型(4 字节)
DSQL_BIGINTbigint有符号长整型(8 字节)
DSQL_DECdec[(p,s)] numeric[(p,s)] number[(p,s)]精确数字类型
DSQL_FLOATreal单精度浮点型
DSQL_DOUBLEfloat double双精度浮点型
DSQL_BLOBblob image longvarbinary二进制大字段
DSQL_DATEdate日期
DSQL_TIMEtime[(n)]时间
DSQL_TIMESTAMPtimestamp[(n)]时间戳
DSQL_BINARYbinary[(n)]二进制类型
DSQL_VARBINARYvarbinary[(n)]变长二进制类型
DSQL_CLOBclob text longvarchar字符大字段
DSQL_TIME_TZtime with time zone带时区的时间类型
DSQL_TIMESTAMP_TZtimestamp with time zone带时区的时间戳类型
DSQL_RSETcursor结果集类型
DSQL_CLASSclassclass 复合类型
DSQL_RECORDrecordrecord 复合类型
DSQL_ARRAYarray动态 array
DSQL_SARRAYarray静态 array
DSQL_INTERVAL_YEARinterval year年时间间隔类型
DSQL_INTERVAL_MONTHinterval month月时间间隔类型
DSQL_INTERVAL_DAYinterval day日时间间隔类型
DSQL_INTERVAL_HOURinterval hour时时间间隔类型
DSQL_INTERVAL_MINUTEinterval minute分时间间隔类型
DSQL_INTERVAL_SECONDinterval second秒时间间隔类型
DSQL_INTERVAL_YEAR_TO_MONTHinterval year to month年转月 时间间隔类型
DSQL_INTERVAL_DAY_TO_HOURinterval day to hour日转时 时间间隔类型
DSQL_INTERVAL_DAY_TO_MINUTEinterval day to minute日转分 时间间隔类型
DSQL_INTERVAL_DAY_TO_SECONDinterval day to second日转秒 时间间隔类型
DSQL_INTERVAL_HOUR_TO_MINUTEinterval hour to minute时转分 时间间隔类型
DSQL_INTERVAL_HOUR_TO_SECONDinterval hour to second时转秒 时间间隔类型
DSQL_INTERVAL_MINUTE_TO_SECONDinterval minute to second分转秒 时间间隔类型
DSQL_BOOLEANbooleanbool 类型

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

宏定义类型说明
DSQL_C_NCHARchar字符类型
DSQL_C_SSHORTsigned short有符号短整型
DSQL_C_USHORTunsigned short无符号短整型
DSQL_C_SLONGsigned int有符号整型
DSQL_C_ULONGunsigned int无符号整型
DSQL_C_FLOATfloat单精度浮点型
DSQL_C_DOUBLEdouble双精度浮点型
DSQL_C_BITchar位类型
DSQL_C_STINYINTchar有符号小整型
DSQL_C_UTINYINTunsigned char无符号小整型
DSQL_C_SBIGINT__int64有符号长整型,注 1:在 Windows 操作系统下,C 中的定义为__int64,在其他操作系统下会有其他的表示方式
DSQL_C_UBIGINTunsigned__int64无符号长整型
DSQL_C_BINARYunsigned char二进制类型
DSQL_C_DATEdpi_date_t日期类型
DSQL_C_TIMEdpi_time_t时间类型
DSQL_C_TIMESTAMPdpi_timestamp_t日期时间类型
DSQL_C_NUMERICdpi_numeric_t数字类型
DSQL_C_INTERVAL_YEARdpi_interval_t年时间间隔类型
DSQL_C_INTERVAL_MONTHdpi_interval_t月时间间隔类型
DSQL_C_INTERVAL_DAYdpi_interval_t日时间间隔类型
DSQL_C_INTERVAL_HOURdpi_interval_t时时间间隔类型
DSQL_C_INTERVAL_MINUTEdpi_interval_t分时间间隔类型
DSQL_C_INTERVAL_SECONDdpi_interval_t秒时间间隔类型
DSQL_C_INTERVAL_YEAR_TO_MONTHdpi_interval_t年转月 时间间隔类型
DSQL_C_INTERVAL_DAY_TO_HOURdpi_interval_t日转时 时间间隔类型
DSQL_C_INTERVAL_DAY_TO_MINUTEdpi_interval_t日转分 时间间隔类型
DSQL_C_INTERVAL_DAY_TO_SECONDdpi_interval_t日转秒 时间间隔类型
DSQL_C_INTERVAL_HOUR_TO_MINUTEdpi_interval_t时转分 时间间隔类型
DSQL_C_INTERVAL_HOUR_TO_SECONDdpi_interval_t时转秒 时间间隔类型
DSQL_C_INTERVAL_MINUTE_TO_SECONDdpi_interval_t分转秒 时间间隔类型
DSQL_C_DEFAULT-自动映射类型
DSQL_C_LOB_HANDLEdhloblctr大字段句柄
DSQL_C_RSETdhstmt结果集类型
DSQL_C_CLASSdhobj复合对象类型
DSQL_C_RECORDdhobj复合对象类型
DSQL_C_ARRAYdhobj复合对象类型
DSQL_C_SARRAYdhobj复合对象类型
DSQL_C_WCHARwchar_t宽字节类型
DSQL_C_BOOLEANdboolean有符号整形。有效值 0/1

诊断

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

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

文章来源:https://blog.csdn.net/qq_39974998/article/details/135233354
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。