SQLSetDescRec
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)
本主题讨论特定于 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 |
date | 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 用户定义的类型(ODBC)。
另请参阅
SQLSetDescRec
ODBC API 实现细节