OpenSchema メソッドOpenSchema Method

プロバイダーからデータベース スキーマ情報を取得します。Obtains database schema information from the provider.


Set recordset = connection.OpenSchema(QueryType, Criteria, SchemaID)  

戻り値Return Value

返します、 Recordsetスキーマ情報を含むオブジェクト。Returns a Recordset object that contains schema information. Recordsetの静的な読み取り専用カーソルとして開かれます。The Recordset will be opened as a read-only, static cursor. QueryTypeに表示する列を指定、 Recordsetします。The QueryType determines what columns appear in the Recordset.


すべてSchemaEnumスキーマ クエリの実行の種類を表す値です。Any SchemaEnum value that represents the type of schema query to run.

任意。Optional. 配列の各クエリの制約のQueryTypeオプション、記載されているSchemaEnumします。An array of query constraints for each QueryType option, as listed in SchemaEnum.

OLE DB 仕様で定義されていないプロバイダー スキーマ クエリの GUID です。The GUID for a provider-schema query not defined by the OLE DB specification. このパラメーターは必要な場合QueryTypeに設定されているadSchemaProviderSpecific。 それ以外は使用されません。This parameter is required if QueryType is set to adSchemaProviderSpecific; otherwise, it is not used.


OpenSchemaメソッドは、データ ソース、テーブル内の列内のテーブルなど、データ ソースに関する情報を返し、データ型がサポートされています。The OpenSchema method returns self-descriptive information about the data source, such as what tables are in the data source, the columns in the tables, and the data types supported.

QueryType引数が列 (スキーマ) が返されるかを示す GUID。The QueryType argument is a GUID that indicates the columns (schemas) returned. OLE DB 仕様では、スキーマの完全な一覧があります。The OLE DB specification has a full list of schemas.

条件引数がスキーマ クエリの結果を制限します。The Criteria argument limits the results of a schema query. 条件対応する結果の制約の列と呼ばれる列のサブセットで行う必要のある値の配列を指定します。 Recordsetします。Criteria specifies an array of values that must occur in a corresponding subset of columns, called constraint columns, in the resulting Recordset.

定数adSchemaProviderSpecificの使用は、 QueryType引数場合は、プロバイダーは、外の独自の標準スキーマ クエリを定義します。 前の表にします。The constant adSchemaProviderSpecific is used for the QueryType argument if the provider defines its own nonstandard schema queries outside those listed previously. この定数を使用する場合、 SchemaID引数を実行する、スキーマ クエリの GUID を渡す必要があります。When this constant is used, the SchemaID argument is required to pass the GUID of the schema query to execute. 場合QueryTypeに設定されているadSchemaProviderSpecificSchemaIDが提供されていない場合、エラーが発生します。If QueryType is set to adSchemaProviderSpecific but SchemaID is not provided, an error will result.

プロバイダーは、OLE DB 標準スキーマのすべてのクエリをサポートする必要はありません。Providers are not required to support all the OLE DB standard schema queries. 具体的には、のみadSchemaTablesadSchemaColumns、およびadSchemaProviderTypesが OLE DB 仕様で必要です。Specifically, only adSchemaTables, adSchemaColumns, and adSchemaProviderTypes are required by the OLE DB specification. ただし、プロバイダーは、サポートする必要はありません、条件これらのスキーマ クエリの制約が以前に紹介します。However, the provider is not required to support the Criteria constraints listed earlier for those schema queries.


リモート データ サービスの使用状況OpenSchemaメソッドがクライアント側でご利用いただけません接続オブジェクト。Remote Data Service Usage The OpenSchema method is not available on a client-side Connection object.


Visual basic での 4 バイト符号なし整数 (DBTYPE UI4) である列、 Recordsetから返される、 OpenSchemaメソッドを接続オブジェクトことはできませんその他の変数と比較します。In Visual Basic, columns that have a four-byte unsigned integer (DBTYPE UI4) in the Recordset returned from the OpenSchema method on the Connection object cannot be compared to other variables. OLE DB データ型の詳細については、次を参照してくださいOLE DB (OLE DB) でのデータ型付録 a:。データ型Microsoft OLE DB プログラマーズ リファレンス。For more information about OLE DB data types, see Data Types in OLE DB (OLE DB) and Appendix A: Data Types in the Microsoft OLE DB Programmer's Reference.


Visual C/C++ユーザークライアント側のカーソルを使用していない場合は、MDAC 2.7、MDAC 2.8、および使用される型の中に Windows Data Access Components (Windows DAC) 6.0 では、型 VT_R8 のバリアント型を返します ADO では列のスキーマの"ORDINAL_POSITION"を取得します。MDAC 2.6 VT_I4 でした。Visual C/C++ Users When not using client-side cursors, retrieving the "ORDINAL_POSITION" of a column schema in ADO returns a variant of type VT_R8 in MDAC 2.7, MDAC 2.8, and Windows Data Access Components (Windows DAC) 6.0, while the type used in MDAC 2.6 was VT_I4. MDAC 2.6 のバリアント型を探してそのだけに記述されたプログラムは、0 を変更しなくても、MDAC 2.7、MDAC 2.8、および Windows DAC 6.0 で実行する場合は、すべて序数を取得 VT_I4 型の返されます。Programs written for MDAC 2.6 that only look for a variant returned of type VT_I4 would get a zero for every ordinal if run under MDAC 2.7, MDAC 2.8, and Windows DAC 6.0 without modification. OLE DB が返すデータ型が、DBTYPE_UI4 であるために、この変更が行われ、VT_I4 の符号付きの型がないが発生していると、原因となり、データが失われる可能性がある切り捨てることがなくすべての値を格納する十分な空き領域。This change was made because the data type that OLE DB returns is DBTYPE_UI4, and in the signed VT_I4 type there is not enough room to contain all possible values without possibly truncation occurring and thereby causing a loss of data.

適用対象Applies To

Connection オブジェクト (ADO)Connection Object (ADO)

関連項目See Also

OpenSchema メソッドの例 (VB) OpenSchema Method Example (VB)
OpenSchema メソッドの例 (vc++) OpenSchema Method Example (VC++)
Open メソッド (ADO Connection) Open Method (ADO Connection)
Open メソッド (ADO Record) Open Method (ADO Record)
Open メソッド (ADO Recordset) Open Method (ADO Recordset)
Open メソッド (ADO Stream) Open Method (ADO Stream)
付録 A: プロバイダーAppendix A: Providers