IDataReader.GetSchemaTable メソッド
IDataReader の列メタデータを説明する DataTable を返します。
Function GetSchemaTable() As DataTable
[C#]
DataTable GetSchemaTable();
[C++]
DataTable* GetSchemaTable();
[JScript]
function GetSchemaTable() : DataTable;
戻り値
列メタデータを説明する DataTable 。
例外
例外の種類 | 条件 |
---|---|
InvalidOperationException | IDataReader が閉じています。 |
解説
.NET Framework Data Provider for OLE DB の GetSchemaTable メソッドの実装は OLE DB IColumnsRowset::GetColumnsRowset メソッドに割り当てられるのに対して、.NET Framework Data Provider for SQL Server での実装は OLE DB プロバイダ層を使用しません。 GetSchemaTable は、各列のメタデータを次の順序で返します。
IDataReader Column | 説明 |
---|---|
ColumnName | 列の名前。一意ではない場合があります。判断できない場合は、null 値が返されます。この名前は常に、現在のビューの列またはコマンド テキストの、最新の名前変更を反映したものになります。 |
ColumnOrdinal | 列の序数。行にブックマーク列がある場合、これはゼロになります。その他の列は 1 から番号が付けられます。この列に null 値を含めることはできません。 |
ColumnSize | 列の値に許容される最大長。固定長データ型を使用する列では、そのデータ型のサイズです。 |
NumericPrecision | ProviderType が数値データ型の場合は、列の最大有効桁数です。有効桁数は列の定義によって異なります。ProviderType が数値データ型ではない場合は null 値です。 |
NumericScale | ProviderType が DBTYPE_DECIMAL または DBTYPE_NUMERIC の場合は、小数点以下の桁数です。それ以外の場合は、null 値です。 |
DataType | 列の .NET Framework に合う型に割り当てます。 |
ProviderType | 列のデータ型のインジケータ。行によって列のデータ型が異なる場合は Object である必要があります。この列に null 値を含めることはできません。 |
IsLong | 長いデータが格納された BLOB (Binary Long Object) が列に格納されている場合に、設定します。長いデータの定義は、プロバイダによって異なります。このフラグの設定は、データ型の PROVIDER_TYPES 行セット内の IS_LONG 列の値に対応します。 |
AllowDBNull | コンシューマがこの列を null 値に設定できる場合、またはコンシューマがこの列を null 値に設定できるかどうかをプロバイダが判断できない場合に設定します。それ以外の場合は、設定しません。null 値に設定できない場合でも、列には null 値が格納されていることがあります。 |
IsReadOnly | 列を変更できない場合は true 。それ以外の場合は false 。 |
IsRowVersion | 書き込むことができない永続的な行識別子がこの列に格納されていて、行を識別する以外に意味を持つ値が格納されていない場合に設定します。 |
IsUnique | ベース テーブル (BaseTableName で返されたテーブル) 内の複数の行でこの列に同じ値を格納できない場合は true 。この列が単独でキーを構成するか、この列だけに適用される UNIQUE 型の制約がある場合は IsUnique が true であることが保証されます。ベース テーブルのこの列に、重複する値を格納できる場合は false 。この列の既定値は false です。 |
IsKeyColumn | この列が、行セット内の、行を一意に識別する列のセットにある場合は true 。IsKeyColumn が true に設定されている列のセットは、行セット内の行を一意に識別する必要があります。この列のセットが列の最小セットである必要はありません。この列のセットはベース テーブルの主キー、UNIQUE 制約、または一意のインデックスから生成されます。この列が行を一意に識別する必要がない場合は false 。 |
IsAutoIncrement | VARIANT_TRUE: この列では、新しい行に固定インクリメントの値が割り当てられます。VARIANT_FALSE: この列では、新しい行に固定インクリメントの値が割り当てられません。この列の既定値は VARIANT_FALSE です。 |
BaseSchemaName | 列を格納しているデータ ストア内のスキーマの名前。基本スキーマ名を確認できない場合は null 値。この列の既定値は null 値です。 |
BaseCatalogName | 列を格納しているデータ ストア内のカタログ名。ベース カタログ名を確認できない場合は null 値。この列の既定値は null 値です。 |
BaseTableName | 列を格納しているデータ ストア内のテーブルまたはビューの名前。ベース テーブル名を確認できない場合は null 値。この列の既定値は null 値です。 |
BaseColumnName | データ ストア内の列名。別名が使用された場合、ColumnName 列に返された列名とは異なることがあります。基本列名を確認できない場合や、データ ストアの列とは異なる行セット列が派生した場合は、null 値。この列の既定値は null 値です。 |
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET