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 |
SQL_DESC_DATA_PTR in APD |
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 日期/時間的改善 (ODBC)>。
大型 CLR UDT 的 SQLSetDescRec 支援
SQLSetDescRec 支援大型 CLR 使用者定義型別 (UDT)。如需詳細資訊,請參閱<大型 CLR 使用者定義型別 (ODBC)>。