Share via


資料表值參數類型探索

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

取用者即,如果命令文字已提供給 OLE DB 提供者,則使用 SQL Server Native Client OLE DB Provider 的用戶端應用程式可以探索每個命令參數的類型。 知道了資料表值參數的類型之後,取用者就可以針對資料表值參數的每一個個別資料行來探索中繼資料資訊。

ICommandWithParameters::GetParameterInfo 可針對大多數的參數類型來支援程序參數的類型資訊。 從 SQL Server 2005 (9.x) 開始,隨著使用者定義類型和 xml 資料類型的導入,GetParameterInfo 方法不足以支撐這個用途,因為透過 ICommandWithParameters 提供使用者定義類型資訊 (名稱、結構描述和目錄) 是不可行的。 因此定義了新的介面 ISSCommandWithParameters 來提供擴充類型資訊。

如果是資料表值參數,您也可以使用 ISSCommandWithParameters 介面來探索詳細資訊。 在準備命令物件之後,用戶端會呼叫 ISSCommandWithParameters::GetParameterInfo。 如果是資料表值參數,DBPARAMINFO 結構的 wType 成員會由提供者設定為 DBTYPE_TABLE。 DBPARAMINFO 結構的 ulParamSize 欄位具有 ~0 的值。

然後取用者會使用 ISSCommandWithParameters::GetParameterProperties 來要求其他屬性 (資料表值參數類型目錄名稱、資料表值參數類型結構描述名稱、資料表值參數類型名稱、資料行排序和預設資料行)。

如果在知道了類型名稱之後要擷取個別資料行資訊,取用者必須呼叫 IOpenRowset::OpenRowsetor 或取得 DBSCHEMA_TABLE_TYPE_COLUMNS 資料列集,其方式是將資料表值參數類型名稱指定為資料表名稱。

另請參閱

資料表值參數 (OLE DB)
使用資料表值參數 (OLE DB)