达梦(DM8)数据库DPI编程描述符句柄

MoMo 2021年6月14日08:46:42
评论
21

一个描述符句柄是指包含列或者动态参数信息的一个数据结构。对于许多应用程序,直

接访问与操作描述符会使得操作更加简单。在 DPI 中描述符分为以下几种类型:

1. 应用程序参数描述符(APD):包含被应用程序设置的输入动态参数或者随执行 SQL

语句中的 CALL 产生的输出动态参数;

2. 驱动执行参数描述符(IPD):对于输入参数,在完成应用程序指定的数据转换之

后,它包含了与 APD 相同的参数。对于输出参数,在进行了一些应用程序指定的

数据转换之前,它包含了返回的参数;

3. 驱动执行行描述符(IRD):包含数据库中的一行;

4. 应用程序行描述符(ARD):包含数据的行。

描述符字段包括头字段与记录域字段,它们全面地描述列与参数。

一个描述符包括了以下的头字段:

属性

说明

DSQL_DESC_ALLOC_TYPE

描述符的分配类型(只读)

DSQL_DESC_ARRAY_SIZE

描述符的记录数组大小(APD,ARD 可读写)

DSQL_DESC_ARRAY_STATUS_PTR

数据状态指示(可读写)

DSQL_DESC_BIND_OFFSET_PTR

绑定数据偏移(APD,ARD 可读写)

DSQL_DESC_BIND_TYPE

绑定类型(APD,ARD 可读写)

DSQL_DESC_COUNT

描述符包含记录个数(APD,ARD,IPD 可读写,IRD 只读)

DSQL_DESC_ROWS_PROCESSED_PTR             处理数据的个数(IRD,IPD 可读写)

一个描述符包括了以下的记录域字段:

属性

说明

DSQL_DESC_AUTO_UNIQUE_VALUE

结果集列是否是自动增长的(IRD 只读)

DSQL_DESC_BASE_COLUMN_NAME

结果集列的基列列名(IRD 只读)

DSQL_DESC_BASE_TABLE_NAME

结果集列的基名(IRD 只读)

DSQL_DESC_CASE_SENSITIVE

对象是否大小写敏感(IRD,IPD 只读)

DSQL_DESC_CATALOG_NAME

列对应的库名(IRD 只读)

DSQL_DESC_CONCISE_TYPE

对象对应的精简类型(APD,ARD,IPD  可读写,IRD

只读)

DSQL_DESC_DATA_PTR

绑定数据的地址(APD,ARD 可读写)

DSQL_DESC_DATETIME_INTERVAL_CODE

时间日期类型,时间日期间隔类型的子类型

APD,ARD,IPD 可读写,IRD 只读)

DSQL_DESC_DATETIME_INTERVAL_PRECISION

时间间隔类型的引导精度(APD,ARD,IPD 可读写,

IRD 只读)

DSQL_DESC_DISPLAY_SIZE

列的显示长度(IRD 只读)

DSQL_DESC_FIXED_PREC_SCALE

指示是否是固定精度刻度的数字类型(IPD,IRD  只

读)

DSQL_DESC_INDICATOR_PTR

指示符地址(APD,ARD 可读写)

DSQL_DESC_LABEL

列的标签(IRD 只读)

DSQL_DESC_LENGTH

字符类型的最大或实际字符长度或者二进制类型的

最大或实际字节长度(APD,ARD,IPD  可读写,IRD

只读)

DSQL_DESC_LITERAL_PREFIX

列的前缀字符(IRD 只读)

DSQL_DESC_LITERAL_SUFFIX

列的后缀字符(IRD 只读)

DSQL_DESC_LOCAL_TYPE_NAME

本地的类型名(IPD,IRD 只读)

DSQL_DESC_NAME

列的别名(IPD 可读写,IRD 只读)

DSQL_DESC_NULLABLE

记录域是否可以为空(IPD,IRD 只读)

DSQL_DESC_NUM_PREC_RADIX

记录域数字类型精度的示基数(APD,ARD,IPD 可

读写,IRD 只读)

DSQL_DESC_OCTET_LENGTH

记录域的最大字节长度(APD,ARD,IPD 可读写,IRD

只读)

DSQL_DESC_OCTET_LENGTH_PTR

指示绑定字符类型或二进制类型的实际字节长度

APD,ARD 可读写)

DSQL_DESC_PARAMETER_TYPE

参数类型(IPD 可读写)

DSQL_DESC_PRECISION

精确数字类型的位数或者近似数字类型的尾数尾

数,或者时间类型,时间戳类型,秒间隔类型秒精

度(APD,ARD,IPD 可读写,IRD 只读)

DSQL_DESC_ROWVER

指示列是否记录行的版本信息(IPD,IRD 只读)

DSQL_DESC_SCALE

DEC 或者 NUMERIC 类型的刻度

DSQL_DESC_SCHEMA_NAME

列所属基所在的模式名(IRD 只读)

DSQL_DESC_SEARCHABLE

列的条件查询方式(IRD 只读)

DSQL_DESC_TABLE_NAME

列所在的基表表名(IRD 只读)

DSQL_DESC_TYPE

C 类型或者 DSQL 类型,时间或者间隔类型则表示

的为详细的类型  DSQL_DT  或  DSQL_INTERVAL

APD,ARD,IPD 可读写,IRD 只读)

DSQL_DESC_TYPE_NAME

数据源的数据类型(IPD,IRD 只读)

DSQL_DESC_UNNAMED

记录域是否是命名的(IPD 可读写,IRD 只读)

DSQL_DESC_UNSIGNED

指示记录域是否为无符号数字类型(IPD,IRD 只读)

DSQL_DESC_UPDATABLE

列是否为可更新(IRD 只读)

DSQL_DESC_BIND_PARAMETER_TYPE

参数类型(IPD 可读写)

DSQL_DESC_DATETIME_FORMAT

时间类型格式(APD, ARD  可读写)

DSQL_DESC_CHARSET

字符集编码(APD, ARD  可读写)

https://xpanx.com/
MoMo
  • 本文由 发表于 2021年6月14日08:46:42
  • 转载请务必保留本文链接:https://xpanx.com/2769.html
匿名

发表评论

匿名网友 填写信息

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