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

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


GetSchemaTable メソッドは、OLE DB IColumnsRowset::GetColumnsRowset メソッドに割り当てられ、各列のメタデータを次の順序で返します。
DataReader 列 | ||
---|---|---|
ColumnName | DBCOLUMN_NAME | 列名。列名は一意でない場合もあります。判断できない場合は、null 値が返されます。この名前は、現在のビュー内またはコマンド テキスト内の列に対して指定された最新の名前を常に反映しています。 |
ColumnOrdinal | DBCOLUMN_NUMBER | 列の序数。行のブックマーク列 (ある場合) はゼロになります。その他の列は 1 から順に番号が付けられます。この列に null 値を含めることはできません。 |
ColumnSize | DBCOLUMN_COLUMNSIZE | |
NumericPrecision | DBCOLUMN_PRECISION | DbType が数値データ型の場合は、列の最大精度になります。DBTYPE_DECIMAL または DBTYPE_NUMERIC データ型の列の精度は、列の定義によって決まります。DbType が数値データ型以外の場合は、null 値になります。 |
NumericScale | DBCOLUMN_SCALE | DbType が DBTYPE_DECIMAL または DBTYPE_NUMERIC の場合は、小数点の右側の桁数になります。それ以外の場合は、null 値になります。 |
なし | 列の .NET Framework に合う型に割り当てます。 | |
ProviderType | DBCOLUMN_TYPE | 列のデータ型のインジケータ。列のデータ型が行によって異なる場合は、DBTYPE_VARIANT である必要があります。この列に null 値を含めることはできません。 |
DBCOLUMNFLAGS_ISLONG | 非常に長いデータが含まれる BLOB (Binary Long Object) が列に格納されている場合は、プロバイダが BCOLUMNFLAGS_ISLONG を設定します。非常に長いデータの定義は、プロバイダによって異なります。このフラグの設定は、データ型の、PROVIDER_TYPES 行セット内の IS_LONG 列の値に対応します。 | |
AllowDBNull | DBCOLUMNFLAGS_ISNULLABLE | コンシューマが列を null 値に設定できる場合や、コンシューマが列を null 値に設定できるかどうかをプロバイダが判断できない場合は、プロバイダが DBCOLUMNFLAGS_ISNULLABLE を設定します。列を null 値に設定できない場合でも、null 値が含まれている可能性があります。 |
IsReadOnly | DBCOLUMNFLAGS_WRITE | 列を変更できない場合は true。それ以外の場合は false。プロバイダが DBCOLUMNFLAGS_WRITE フラグまたは DBCOLUMNFLAGS_WRITEUNKNOWN フラグを設定している場合、その列は書き込み可能と見なされます。 |
IsRowVersion | DBCOLUMNFLAGS_ISROWID | 書き込み禁止で、行の識別以外に意味のない値を持つ永続的な行 ID が列に格納されている場合は、プロバイダが DBCOLUMNFLAGS_ISROWID を設定します。 |
IsUnique | DBCOLUMN_ISUNIQUE | VARIANT_TRUE の場合は、この列では、ベース テーブル (BaseTableName で返されるテーブル) 内で行に重複する値を格納できないことを示します。列自体がキーを構成している場合や、その列のみに適用される UNIQUE 型の制約がある場合は、IsUnique は必ず VARIANT_TRUE になります。 VARIANT_FALSE の場合は、この列に、ベース テーブル内で重複する値を格納できることを示します。この列の既定値は、VARIANT_FALSE です。 |
IsKey | DBCOLUMN_KEYCOLUMN | VARIANT_TRUE の場合は、列が、行セット内の行を一意に識別するために組み合わされる、列のセットの 1 つであることを示します。IsKey が VARIANT_TRUE に設定された列のセットは、行セット内の行を一意に識別する必要があります。この列のセットが列の最小セットである必要はありません。この列のセットは、ベース テーブルの主キー、UNIQUE 制約、または一意のインデックスから生成されることもあります。 |
IsAutoIncrement | DBCOLUMN_ISAUTOINCREMENT | VARIANT_TRUE の場合は、列が、新しい行に固定インクリメントで値を割り当てることを示します。 VARIANT_FALSE の場合は、列が、新しい行に固定インクリメントで値を割り当てないことを示します。この列の既定値は、VARIANT_FALSE です。 |
BaseSchemaName | DBCOLUMN_BASESCHEMANAME | 列を格納している、データ ストア内のスキーマの名前。基本スキーマ名を判断できない場合は null 値。この列の既定値は null 値です。 |
BaseCatalogName | DBCOLUMN_BASECATALOGNAME | 列を格納している、データ ストア内のカタログ名。ベース カタログ名を判断できない場合は null 値。この列の既定値は null 値です。 |
BaseTableName | DBCOLUMN_BASETABLENAME | 列を格納している、データ ストア内のテーブルまたはビューの名前。ベース テーブル名を判断できない場合は null 値。この列の既定値は null 値です。 |
BaseColumnName | DBCOLUMN_BASECOLUMNNAME | データ ストア内での列名。別名が使用された場合、ColumnName 列に返された列名とは異なることがあります。基本列名を判断できない場合や、行セット列であると判明したがデータ ストア内の列と一致しない場合は、null 値。この列の既定値は null 値です。 |
![]() |
---|
メタデータの列が正しい情報を確実に返すようにするには、behavior パラメータを KeyInfo に設定して ExecuteReader を呼び出す必要があります。それ以外の場合、スキーマ テーブルのいくつかの列は、既定のデータ、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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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