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 規格只需要 adSchemaTablesadSchemaColumnsadSchemaProviderTypes。 不過,提供者不需要支援稍早針對那些結構描述查詢列出的 Criteria 限制式。

注意

遠端資料服務使用方式 這個 OpenSchema 方法無法在用戶端 Connection 物件上使用。

注意

在 Visual Basic 中,在從 Connection 物件上的 OpenSchema 方法傳回的 Recordset 中具有四位元組不帶正負號的整數 (DBTYPE UI4) 的資料行,無法與其他變數比較。 如需 OLE DB 資料類型的詳細資訊,請參閱《Microsoft OLE DB 程式設計師參考》的 OLE DB 中的資料類型 (OLE DB)附錄 A:資料類型

注意

Visual C/C++ 使用者 當不使用用戶端資料指標時,在 ADO 中擷取資料行結構描述的 "ORDINAL_POSITION" 會傳回 MDAC 2.7、MDAC 2.8 和 Windows Data Access Components (Windows DAC) 6.0 中的 VT_R8 類型,而 MDAC 2.6 中使用的類型是 VT_I4。 針對 MDAC 2.6 所撰寫且只會尋找類型為 VT_I4 之傳回變體的程式,若在未修改的情況下於 MDAC 2.7、MDAC 2.8 及 Windows DAC 6.0 下執行,將會針對每個序數取得零。 之所以會做出此變更,是因為 OLE DB 傳回的資料類型是 DBTYPE_UI4,而在帶正負號的 VT_I4 類型中,並沒有足夠的空間可在不發生截斷的同時包含所有可能的值,進而導致資料遺失。

套用至

Connection 物件 (ADO)

另請參閱

OpenSchema 方法範例 (VB)
OpenSchema 方法範例 (VC++)
Open 方法 (ADO Connection)
Open 方法 (ADO Record)
Open 方法 (ADO Recordset)
Open 方法 (ADO Stream)
附錄 A:提供者