Data Provider for .NET Guide (v11)

GetSchemaTable メソッドによって返される列

PsqlDataReader が開いている間は、結果セットからスキーマ情報を取得することができます。PsqlDataReader.GetSchemaTable() で生成された結果セットは、表 53 に説明されている列を、指定された順序で返します。

表 53 PsqlDataReader の GetSchemaTable で返される列
説明
ColumnName
列の名前。列名は一意でない場合もあります。判断できない場合は、null 値が返されます。この名前は、現在のビュー内またはコマンド テキスト内の列に対する最新の名前変更を常に反映した名前になります。
ColumnOrdinal
列の序数。この列に null 値を含めることはできません。行のブックマーク列(ある場合)はゼロになります。その他の列は 1 から順に番号が付けられます。
ColumnSize
列の値に許容される最大長。固定長データ型を使用する列では、そのデータ型のサイズになります。
NumericPrecision
列の精度。これは ProviderType での列の定義方法によって決まります。
ProviderType が数値データ型の場合、これは列の最大精度になります。
ProviderType が数値データ型以外の場合は、null 値になります。
NumericScale
小数点の右側の桁数。これは、ProviderType が DBTYPE_DECIMAL または DBTYPE_NUMERIC の場合です。それ以外の場合は、null 値になります。
この値は、ProviderType での列の定義方法によって決まります。
DataType
列を .NET Framework の型にマップします。
ProviderType
列のデータ型のインジケーター。この列に null 値を含めることはできません。
列のデータ型が行によって異なる場合は、Object である必要があります。
IsLong
非常に長いデータを格納する BLOB が列に含まれている場合に設定されます。このフラグの設定は、データ型の、PROVIDER_TYPES 行セット内の IS_LONG 列の値に対応します。
非常に長いデータの定義は、プロバイダーによって異なります。
AllowDBNull
コンシューマーが列に null 値を設定できる場合や、コンシューマーが列に null 値を設定できるかどうかをデータ プロバイダーが判断できない場合に、設定されます。それ以外の場合は、設定されません。
列を null 値に設定できない場合でも、null 値が含まれている可能性があります。
IsReadOnly
列を変更できるかどうかを決定します。
列が変更できない場合は true、それ以外の場合は false です。
IsRowVersion
書き込み禁止で、行の識別以外に意味のない値を持つ永続的な行 ID が列に格納されている場合に、設定されます。
IsUnique
列自体がキーを構成しているか、あるいは、その列だけに適用される UNIQUE 型の制約があるかどうかを示します。
true に設定した場合、ベース テーブル(BaseTableName で返されるテーブル)の行は、この列に同じ値を格納できません。
false(デフォルトの初期値)に設定した場合は、ベース テーブルでこの列に重複する値を格納できます。
IsKey
列のセットが行セットの 1 行を一意に識別するかどうかを指定します。この列のセットは、ベース テーブルの主キー、一意の制約、または重複のないインデックスから生成することができます。
列が、行セット内の列のセットのうちの 1 つで、これらを基に行を一意に識別する場合は true です。列が行を一意に識別する必要がない場合は false です。
IsAutoIncrement
新しい行に固定インクリメントで値を割り当てるかどうかを指定します。
VARIANT_TRUE に設定すると、列は新しい行に固定インクリメントで値を割り当てます。
VARIANT_FALSE(デフォルトの初期値)に設定すると、列は新しい行に固定インクリメントで値を割り当てません。
BaseSchemaName
列を格納している、データベース内のスキーマの名前。基本スキーマ名を判断できない場合は null 値です。
デフォルトの初期値は null です。
BaseCatalogName
列を格納している、データ ストア内のカタログの名前。基本カタログ名を判断できない場合は null 値が使用されます。
デフォルトの初期値は null です。
BaseTableName
列を格納している、データ ストア内のテーブルまたはビューの名前。基本テーブル名を判断できない場合は null 値が使用されます。
デフォルトの初期値は null です。
BaseColumnName
データ ストア内での列名。エイリアスが使用された場合は、ColumnName 列に返される列名とは異なることがあります。基本列名を判断できない場合や、データベース内の列から派生した行セット列であるのにそれと一致しない場合は、null 値が使用されます。
デフォルトの初期値は null です。
IsAliased
列の名前がエイリアスであるかどうかを指定します。列名がエイリアスであれば、値 true が返されます。そうでなければ、false が返されます。
IsExpression
列の名前が式であるかどうかを指定します。列が式であれば、値 true が返されます。そうでなければ、false が返されます。
IsIdentity
列の名前が ID 列であるかどうかを指定します。列が ID 列であれば、値 true が返されます。そうでなければ、false が返されます。
IsHidden
列の名前が非表示であるかどうかを指定します。列が表示されない場合は、値 true が返されます。そうでなければ、false が返されます。


スキーマ情報の入手

GetSchema メソッドによるスキーマ メタデータの取得