OpenSchema 方法
從提供者取得資料庫架構資訊。
語法
Set recordset = connection.OpenSchema(QueryType, Criteria, SchemaID)
傳回值
傳回包含架構資訊的 Recordset 物件。 Recordset 會以唯讀靜態數據指標的形式開啟。 QueryType 會決定 Recordset中顯示的數據行。
參數
QueryType
任何 SchemaEnum 值,代表要執行的架構查詢類型。
準則
自選。 每個 QueryType 選項的查詢條件約束陣列,如 schemaEnum 所列。
SchemaID
OLE DB 規格未定義的提供者架構查詢 GUID。 如果 queryType 設定為 adSchemaProviderSpecific ,則需要此參數;否則不會使用它。
言論
OpenSchema 方法會傳回數據源的自我描述性資訊,例如數據源中的數據表、數據表中的數據行,以及支持的數據類型。
QueryType 自變數是 GUID,表示傳回的數據行(架構)。 OLE DB 規格具有完整的架構清單。
Criteria 自變數會限制架構查詢的結果。 Criteria 指定值陣列,這些值必須發生在產生的 Recordset中對應的數據行子集,稱為條件約束數據行。
如果提供者在先前列出的非標準架構查詢之外定義自己的非標準架構查詢,adSchemaProviderSpecific 常數會用於 QueryType 自變數。 使用這個常數時,需要 SchemaID 自變數,才能傳遞要執行的架構查詢 GUID。 如果 QueryType 設定為 adSchemaProviderSpecific 但未提供 schemaID ,則會產生錯誤。
提供者不需要支援所有 OLE DB 標準架構查詢。 具體而言,OLE DB 規格只需要 adSchemaTables、adSchemaColumns和 adSchemaProviderTypes。 不過,提供者不需要支援先前針對這些架構查詢列出的 準則 條件約束。
注意
遠端數據服務使用方式 用戶端 Connection 對象上無法使用 OpenSchema 方法。
注意
在 Visual Basic 中,Recordset 中具有四位元節無符號整數 (DBTYPE UI4) 的數據行, 從 Connection 物件上 OpenSchema 方法傳回的數據行無法與其他變數進行比較。 如需 OLE DB 資料類型的詳細資訊,請參閱 OLE DB (OLE DB) 中的 數據類型 和 附錄 A:Microsoft OLE DB 程式設計人員參考中的數據類型。
注意
Visual C/C++ 使用者 不使用用戶端數據指標時,擷取 ADO 中數據行架構的「ORDINAL_POSITION」,會傳回 MDAC 2.7、MDAC 2.8 和 Windows 數據存取元件 (Windows DAC) 6.0 中類型VT_I4的 VT_R8變數。 針對 MDAC 2.6 所撰寫的程式,只有在 MDAC 2.7、MDAC 2.8 和 Windows DAC 6.0 未修改的情況下執行,則只會針對每個序數尋找傳回之類型VT_I4的變數都會得到零。 這項變更是因為 OLE DB 傳回的數據類型是DBTYPE_UI4,而且在已簽署的VT_I4類型中,沒有足夠的空間來包含所有可能的值,而不會發生截斷,因而造成數據遺失。
適用於
另請參閱
OpenSchema 方法範例 (VB)
OpenSchema 方法範例 (VC++)
Open 方法 (ADO 連線)
Open 方法 (ADO 記錄)
Open 方法 (ADO 記錄集)
Open 方法 (ADO 資料流)
附錄 A:提供者