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。
下表介绍了参数和描述符字段之间的映射。
参数 |
非表值参数类型的相关属性,包括表值参数列 |
表值参数的相关属性 |
---|---|---|
Type |
SQL_DESC_TYPE |
SQL_SS_TABLE |
SubType |
忽略 |
对于 SQL_DATETIME 或 SQL_INTERVAL 类型的记录,请将它设置为 SQL_DESC_DATETIME_INTERVAL_CODE。 |
Length |
SQL_DESC_OCTET_LENGTH |
表值参数类型名称的长度。如果类型名称是以 null 结束,则它可为 SQL_NTS;如果不需要表值参数类型名称,则为零。 |
Precision |
SQL_DESC_PRECISION |
SQL_DESC_ARRAY_SIZE |
Scale |
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 对日期和时间增强功能的支持
日期/时间类型所允许的值如下所示:
Type |
SubType |
Length |
Precision |
Scale |
|
---|---|---|---|---|---|
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)。