OdbcDataReader.GetSchemaTable メソッド
アセンブリ: System.Data (system.data.dll 内)

Dim instance As OdbcDataReader Dim returnValue As DataTable returnValue = instance.GetSchemaTable
列メタデータを説明する DataTable。


GetSchemaTable メソッドは、各列のメタデータを次の順序で返します。
.NET Framework ODBC 用データ プロバイダでは、SQLPrepare、SQLExecute、または SQLExecuteDirect 関数のいずれかが呼び出された後で、ODBC ドライバからのメタデータ情報を使用できることを前提としています。"SchemaOnly" コマンドが正しく動作するために、SQLPrepare は、必要なメタデータ情報を返す必要があります。すべての ODBC ドライバでこの関数が使用できるわけではなく、また、使用できる場合でもメタデータ情報が返されるとは限りません。このような場合、SchemaTable の一部またはすべての情報が欠落します。SQLPrepare を呼び出した後、データ プロバイダは ODBC の SQLColAttribute 関数を呼び出して、クエリ結果の各列に関連するメタデータ情報 (IsLong、IsUnique、AllowDBNull、BaseTableName、BaseColumnName など) を検索します。基になるドライバが完全な情報を返さない場合、SchemaTable 内の対応する値は正しく設定されません。
.NET Framework ODBC 用データ プロバイダは、SQLPrimaryKeys も呼び出して、各テーブルのキー情報を取得します。基になる ODBC ドライバがこの関数をサポートしていない場合、データ プロバイダは SQLStatistics を呼び出して、一意のインデックスのいずれかをテーブルの主キーとして選択します。これによって目的の結果が得られないこともあります。
OdbcCommandBuilder が正しく動作するためには、テーブルの主キーの正しい ID が必要です。クエリ結果によって BaseTableName が返されない列がある場合、.NET Framework ODBC 用データ プロバイダは、SQL ステートメントを解析して、そのクエリに関連するテーブル名を検索しようとします。この動作は、UPDATE、INSERT、DELETE、および単純な SELECT ステートメントでは行われますが、ストアド プロシージャや結合を使用した SELECT ステートメントでは行われません。このテーブルから一部またはすべてのスキーマ情報が欠落している場合は、正しい INSERT、UPDATE、または DELETE ステートメントを自動生成するために必要なスキーマ情報が足りないため、OdbcCommandBuilder は正しく動作しません。
メタデータの列が正しい情報を確実に返すようにするには、behavior パラメータを KeyInfo に設定して ExecuteReader を呼び出す必要があります。それ以外の場合、スキーマ テーブルのいくつかの列は、既定のデータ、null、または正しくないデータを返します。
![]() |
---|
Microsoft Jet ODBC ドライバは、一意のインデックス列および主キー列を、null 許容であるかどうかに関係なく常に null 許容として返します。また、このドライバは、主キー情報を返しません。主キーを含む一意のインデックスと、そのインデックスの列のリストだけを返します。主キー列は、他の列と区別されません。 |

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からOdbcDataReader.GetSchemaTable メソッドを検索する場合は、下記のリンクをクリックしてください。

- OdbcDataReader.GetSchemaTable メソッドのページへのリンク