达梦(DM)数据库函数dpi_get_diag_field

MoMo 2021年6月14日09:56:28
评论
39

dpi_get_diag_field

函数

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

);

功能

获取诊断信息的某个指定域的值。

参数

1) hndl_type

输入参数,需要获取诊断信息的句柄类型。必须为下列值之一:

  • DSQL_HANDLE_ENV
  • DSQL_HANDLE_DBC
  • DSQL_HANDLE_STMT
  • DSQL_HANDLE_DESC
  • DSQL_HANDLE_LOB_LOCATOR
  • DSQL_HANDLE_OBJECT
  • DSQL_HANDLE_OBJECTDESC

2) hndl

输入参数,需要取得诊断信息且由 hndl_type 所标示的句柄

3) rec_num

输入参数,诊断信息的索引号。索引起始为  1。如果  diag_id  为诊断头信息,则此参数

被忽略。

4) diag_id

输入参数,指定需要获取值的诊断域。更多信息参见说明。

5) diag_info

输出参数,指向返回诊断域信息的缓冲区的指针。数据类型依赖于 diag_id

6) buf_len

输入参数,如果 diag_info 返回的是字符串,则此参数为 diag_info 缓冲区的长度。如果

diag_info 返回的不是字符串,则此参数忽略。

7) info_len

输出参数,指向返回 diag_info 中可提供字符串的总长度的缓冲区的指针。如果 diag_info

 NULL,则不返回长度,如果 diag_info 值为字符串,总长度大于等于 buf_len,则 diag_info

值被截断且以 0 结尾。

返回值

DSQL_SUCCESS

DSQL_SUCCESS_WITH_INFO

DSQL_ERROR

DSQL_INVALID_HANDLE

DSQL_NO_DATA

说明

函数返回值含义:

  • DSQL_SUCCESS函数成功返回诊断信息。
  • DSQL_SUCCESS_WITH_INFOdiag_info 缓冲区长度不足,诊断信息被截断。
  • DSQL_ERROR:发生了下列情况之一:
  1. rec_num 小于等于 0。对于诊断头,忽略 rec_num
  2. 所要求的诊断域的值为字符串,而 buf_sz 小于 0
  3. diag_id 不是一个有效的诊断域。
  4. diag_id DSQL_DIAG_ROW_COUNT

DSQL_DIAG_DYNAMIC_FUNCTION_CODEDSQL_DIAG_PRINT_INFO 

 DSQL_DIAG_EXPLAIN,但 hndl 不是一个语句句柄

  • DSQL_INVALID_HANDLE:由 hndl_type 所标示的 hndl 为一个无效的句柄
  • DSQL_NO_DATArec_num 大于句柄所含有的诊断信息总数。
https://xpanx.com/
MoMo
  • 本文由 发表于 2021年6月14日09:56:28
  • 转载请务必保留本文链接:https://xpanx.com/2826.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: