SQLSetDescRec

本主题讨论特定于SQL Server Native Client的 SQLSetDescRec 功能。

SQLSetDescRec 和表值参数

SQLSetDescRec 可用于设置表值参数和表值参数列的描述符字段。 表值参数列仅在将描述符标头字段 SQL_SOPT_SS_PARAM_FOCUS 设置为特定记录(其 SQL_DESC_TYPE 设置为 SQL_SS_TABLE)的序数时可用。 有关SQL_SOPT_SS_PARAM_FOCUS的详细信息,请参阅 SQLSetStmtAttr

下表介绍了参数和描述符字段之间的映射。

参数 非表值参数类型的相关属性,包括表值参数列 表值参数的相关属性
类型 SQL_DESC_TYPE SQL_SS_TABLE
子类型 忽略 对于 SQL_DATETIME 或 SQL_INTERVAL 类型的记录,请将它设置为 SQL_DESC_DATETIME_INTERVAL_CODE。
长度 SQL_DESC_OCTET_LENGTH 表值参数类型名称的长度。 如果类型名称是以 null 结束,则它可为 SQL_NTS;如果不需要表值参数类型名称,则为零。
精度 SQL_DESC_PRECISION SQL_DESC_ARRAY_SIZE
缩放 SQL_DESC_SCALE 未使用。 此参数应为零。
DataPtr APD 中的 SQL_DESC_DATA_PTR SQL_CA_SS_TYPE_NAME

对于存储过程调用,此参数是可选的。如果不需要此参数,则可以指定为 NULL。 对于非过程调用的 SQL 语句,必须指定此参数。

使用变量行绑定时,DataPtr 还充当应用程序可用于标识此表值参数的唯一值。
StringLengthPtr SQL_DESC_OCTET_LENGTH_PTR SQL_DESC_OCTET_LENGTH_PTR

对于表值参数,它是要传输的行数或 SQL_DATA_AT_EXEC。 这是一个指针,指向一个值,该值包含要通过 SQLExecDirect 传输的行数。
IndicatorPtr SQL_DESC_INDICATOR_PTR SQL_DESC_INDICATOR_PTR

有关表值参数的详细信息,请参阅 表值参数 (ODBC)

SQLSetDescRec 对日期和时间增强功能的支持

日期/时间类型所允许的值如下所示:

类型 子类型 长度 精度 缩放
datetime SQL_DATETIME SQL_CODE_TIMESTAMP 4 3 3
smalldatetime SQL_SQL_DATETIME SQL_CODE_TIMESTAMP 8 0 0
日期 SQL_DATETIME SQL_CODE_DATE 6 0 0
time SQL_SS_TIME2 0 10 0..7 0..7
datetime2 SQL_DATETIME SQL_CODE_TIMESTAMP 16 0..7 0..7
datetimeoffset SQL_SS_TIMESTAMPOFFSET 0 20 0..7 0..7

有关详细信息,请参阅 ODBC) (日期和时间改进

SQLSetDescRec 对大型 CLR UDT 的支持

SQLSetDescRec 支持大型 CLR 用户定义类型 (UDT)。 有关详细信息,请参阅 大型 CLR User-Defined类型 (ODBC)

另请参阅

SQLSetDescRec
ODBC API 实现细节