OLE DB 資料表值參數類型支援
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
本文描述資料表值參數的 OLE DB 類型支援。
資料表值參數資料列集物件
您可以針對資料表值參數建立專用的資料列集物件。 您可以使用 ITableDefinitionWithConstraints::CreateTableWithConstraints 或 IOpenRowset::OpenRowset 來建立資料表值參數資料列集物件。 若要這樣做,請將 pTableID 參數的 eKind 成員設定為 DBKIND_GUID_NAME,並提供 CLSID_ROWSET_INMEMORY 當作 guid 成員。 使用 IOpenRowset::OpenRowset 時,您必須在 pTableID 的 pwszName 成員中指定資料表值參數的伺服器類型名稱。 資料表值參數資料列集物件的行為就如同一般 OLE DB Driver for SQL Server 物件。
const GUID CLSID_ROWSET_TVP =
{0xc7ef28d5, 0x7bee, 0x443f, {0x86, 0xda, 0xe3, 0x98, 0x4f, 0xcd, 0x4d, 0xf9}};
CoType RowsetTVP
{
[mandatory] interface IAccessor;
[mandatory] interface IColumnsInfo;
[mandatory] interface IConvertType;
[mandatory] interface IRowset;
[mandatory] interface IRowsetInfo;
[optional] interface IColumnsRowset;
[optional] interface IRowsetChange;
[optional] interface ISupportErrorInfo;
};
DBTYPE_TABLE
新的類型 DBTYPE_TABLE 代表資料表類型。 這個類型會在需要 DBTYPE 的各種 OLE DB 介面中指定資料表值參數。
#define DBTYPE_TABLE (143)
DBTYPE_TABLE 與 DBTYPE_IUNKNOWN 具有相同的格式。 它是資料緩衝區中物件的指標。 若為繫結中的完整規格,取用者會填滿 DBOBJECT 緩衝區,並將 iid 設定為其中一個資料列集物件介面 (IID_IRowset)。 如果繫結中沒有指定任何 DBOBJECT,系統就會採用 IID_IRowset。
不支援針對任何其他類型在 DBTYPE_TABLE 之間來回轉換。 IConvertType::CanConvert 會針對任何要求的不支援轉換傳回 S_FALSE,但 DBTYPE_TABLE 與 DBTYPE_TABLE 的轉換除外。 這會採用 Command 物件的 DBCONVERTFLAGS_PARAMETER。
方法
如需支援資料表值參數之 OLE DB 方法的詳細資訊,請參閱 OLE DB 資料表值參數類型支援 (方法)。
屬性
如需支援資料表值參數之 OLE DB 屬性的詳細資訊,請參閱 OLE DB 資料表值參數類型支援 (屬性)。
另請參閱
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: