Share via


SQLSetDescRec

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (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)

大型 CLR UDT 的 SQLSetDescRec 支援

SQLSetDescRec 支援大型 CLR 使用者定義型別 (UDT)。 如需詳細資訊,請參閱 大型 CLR 使用者定義型別 (ODBC)

另請參閱

SQLSetDescRec
ODBC API 實作詳細資料