OleDbConnection.GetOleDbSchemaTable(Guid, Object[]) メソッド


GUID によって指定したデータ ソースのスキーマ情報を、指定した制約の適用後に返します。Returns schema information from a data source as indicated by a GUID, and after it applies the specified restrictions.

 System::Data::DataTable ^ GetOleDbSchemaTable(Guid schema, cli::array <System::Object ^> ^ restrictions);
public System.Data.DataTable GetOleDbSchemaTable (Guid schema, object[] restrictions);
member this.GetOleDbSchemaTable : Guid * obj[] -> System.Data.DataTable
Public Function GetOleDbSchemaTable (schema As Guid, restrictions As Object()) As DataTable



取得するスキーマ テーブルを示す OleDbSchemaGuid 値の 1 つ。One of the OleDbSchemaGuid values that specifies the schema table to return.


制約値の Object 配列。An Object array of restriction values. 制約値は、制約列の順に適用されます。These are applied in the order of the restriction columns. つまり、最初の制限値は最初の制限列に、2 番目の制限値は 2 番目の制限列に、という形で適用されます。That is, the first restriction value applies to the first restriction column, the second restriction value applies to the second restriction column, and so on.


要求したスキーマ情報を格納した DataTableA DataTable that contains the requested schema information.


指定された制約セットが無効です。The specified set of restrictions is invalid.

OleDbConnection が閉じています。The OleDbConnection is closed.

指定されたスキーマ行セットは、OLE DB プロバイダーでサポートされていません。The specified schema rowset is not supported by the OLE DB provider.

または-or- schema パラメーターに DbInfoLiterals の値が格納され、restrictions パラメーターに 1 つ以上の制約が格納されています。The schema parameter contains a value of DbInfoLiterals and the restrictions parameter contains one or more restrictions.

次の例では、データベース内のテーブルの一覧を返します。The following sample returns a list of tables in a database.

static DataTable GetSchemaTable(string connectionString)
    using (OleDbConnection connection = new 
        DataTable schemaTable = connection.GetOleDbSchemaTable(
            new object[] { null, null, null, "TABLE" });
        return schemaTable;
Public Function GetSchemaTable(ByVal connectionString As String) _
    As DataTable

    Using connection As New OleDbConnection(connectionString)

        Dim schemaTable As DataTable = _
            connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
            New Object() {Nothing, Nothing, Nothing, "TABLE"})
        Return schemaTable
    End Using
End Function


スキーマテーブルは、schema パラメーターで指定された OLE DB スキーマ行セットと同じ形式の DataTable として返されます。The schema table is returned as a DataTable that has the same format as the OLE DB schema rowset specified by the schema parameter. restrictions パラメーターを使用して、DataTable で返される行をフィルター処理します (たとえば、テーブル名、型、所有者、またはスキーマの制限を指定します)。Use the restrictions parameter to filter the rows to be returned in the DataTable (for example, by specifying restrictions for table name, type, owner, or schema). 値を配列で渡す場合、値を含まない配列要素には空の文字列または NULL を含めます。When you pass values in the array, include empty strings or nulls for array elements that do not contain values. 空の配列を restrictionsに渡すと、すべての行 (テーブルごとに1つ) が既定の順序で返されます。If you pass an empty array to restrictions, all rows (one for each table) are returned in default order. 配列内の値は、ソーステーブル内の列の順序と DataTableに対応します。Values in the array correspond to the order of the columns in the source table and DataTable. 制限配列の各要素は、スキーマ行セット内の対応する列の内容と比較されます。Each element in the restrictions array is compared with the content of the corresponding column in the schema rowset. たとえば、制限配列の最初の要素は、行セットの最初の列と比較されます。For example, the first element in the restrictions array is compared to first column in the rowset. 制限要素が null でない場合は、制限値と完全に一致するスキーマ行セットの行だけが、結果の DataTableに追加されます。If a restriction element is not null, only rows from the schema rowset that exactly match the value of the restriction are added to the resulting DataTable.

OleDbConnection メソッドは、標準の共通言語ランタイムの変換規則を使用して、基になる OLE DB IDBSchemaRowset:: GetRowsetメソッドを呼び出します。The OleDbConnection method calls the underlying OLE DB IDBSchemaRowset::GetRowset method using standard common language runtime conversion rules. 詳細については、「 COM データ型」を参照してください。For more information, see COM Data Types.

リテラルに関する情報を取得するには、DbInfoLiteralsを使用します。You can retrieve information about literals by using DbInfoLiterals. これにより、OLE DB IDBInfo:: GetLiteralInfoインターフェイスを呼び出すことに相当する情報、または adSchemaDBInfoLiterals 定数を使用したOpenSchemaメソッドが提供されます。This provides information equivalent to calling the OLE DB IDBInfo::GetLiteralInfo interface, or the ADO Connection.OpenSchema method with the adSchemaDBInfoLiterals constant.