次の方法で共有


OleDbConnection.GetOleDbSchemaTable メソッド

GUID によって指定したデータ ソースのスキーマ情報を、指定した制約の適用後に返します。

Public Function GetOleDbSchemaTable( _
   ByVal schema As Guid, _   ByVal restrictions() As Object _) As DataTable
[C#]
public DataTable GetOleDbSchemaTable(Guidschema,object[] restrictions);
[C++]
public: DataTable* GetOleDbSchemaTable(Guidschema,Object* restrictions __gc[]);
[JScript]
public function GetOleDbSchemaTable(
   schema : Guid,restrictions : Object[]) : DataTable;

パラメータ

  • schema
    取得するスキーマ テーブルを示す OleDbSchemaGuid 値の 1 つ。
  • restrictions
    制約値の Object 配列。制約値は、制約列の順に適用されます。つまり、先頭の制約値は先頭の制約列に適用され、2 番目の制約値は 2 番目の制約列に適用されます。

戻り値

要求したスキーマ情報を格納した DataTable

例外

例外の種類 条件
OleDbException 指定された制約セットが無効です。
InvalidOperationException OleDbConnection が閉じています。
ArgumentException 指定されたスキーマ行セットは、OLE DB プロバイダでサポートされていません。

または

schema パラメータに DbInfoLiterals の値が格納され、 restrictions パラメータに 1 つ以上の制約が格納されています。

解説

スキーマ テーブルは、schema パラメータで指定した OLE DB スキーマ行セットと同じ形式の DataTable として返されます。 DataTable に返される行をフィルタ処理するには、restrictions パラメータを使用します。たとえば、テーブル名、型、所有者、スキーマの制約などを指定します。値を配列で渡す場合、値を含まない配列要素には、空の文字列または null を設定します。restrictions に空の配列を渡すと、すべての行 (各テーブルにつき 1 行) が既定の順序で返されます。配列内の値は、ソース テーブルおよび DataTable の列の順序に対応します。restrictions 配列内の各要素は、スキーマ行セット内の対応する列の内容と比較されます。たとえば、restrictions 配列の 1 番目の要素は、行セットの 1 列目と比較されます。制約要素が null ではない場合、制約値と完全一致するスキーマの行だけが結果の DataTable に追加されます。

OleDbConnection メソッドは、標準共通言語ランタイム変換規則を使用して、基になる OLE DB IDBSchemaRowset::GetRowset メソッドを呼び出します。詳細については、「 COM のデータ型 」を参照してください。

DbInfoLiterals を使用して、リテラルに関する情報を取得できます。この方法では、OLE DB IDBInfo::GetLiteralInfo インターフェイス、または adSchemaDBInfoLiterals 定数を指定した ADO Connection.OpenSchema メソッドを呼び出した場合と同じ情報を得ることができます。

使用例

[Visual Basic, C#, C++] データベース内のテーブル一覧を返す例を次に示します。

 
Public Function GetTables(conn As OleDbConnection) As DataTable
  conn.Open()
  Dim schemaTable As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
                                                          New Object() {Nothing, Nothing, Nothing, "TABLE"})
  conn.Close()
  Return schemaTable
End Function

[C#] 
public DataTable GetTables(OleDbConnection conn)
{
  conn.Open();
  DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
                                                   new object[] {null, null, null, "TABLE"});
  conn.Close();
  return schemaTable;
}

[C++] 
public:
    DataTable* GetTables(OleDbConnection* conn)
    {
        conn->Open();
        Object* restrictions[] = {0, 0, 0, S"TABLE"};
        DataTable* schemaTable = conn->GetOleDbSchemaTable(OleDbSchemaGuid::Tables, restrictions);
        conn->Close();
        return schemaTable;
    };

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

OleDbConnection クラス | OleDbConnection メンバ | System.Data.OleDb 名前空間 | OleDbSchemaGuid