Data Provider for .NET Guide (v11)

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

アプリケーションでデータ プロバイダーおよびデータ ソースに関するスキーマ メタデータを取得する場合は、Connection オブジェクトの GetSchema メソッドを使用を使用します。各プロバイダーには 5 つの標準メタデータ コレクションも含め、多数のスキーマ コレクションが実装されています。

追加のコレクションを指定したら、データ プロバイダーからスキーマ情報を返す機能がサポートされるようにしておく必要があります。

データ プロバイダーでサポートされるその他のコレクションの詳細については、Additional スキーマ コレクションを参照してください。

メモ:各 ColumnName で必要なデータ型など、さらなるバックグラウンド機能要件については、.NET Framework ドキュメントを参照してください。

MetaDataCollections スキーマ コレクション

MetaDataCollections スキーマ コレクションは、ログインしているユーザーが利用できるスキーマ コレクションの一覧です。MetaDataCollection は、表 54 に記載されているサポートされる列を任意の順序で返すことができます。

表 54 MetaDataCollections スキーマ コレクションによって返される列
列名
説明
CollectionName
コレクションを返すために GetSchema メソッドに渡すコレクションの名前。
NumberOfRestrictions
コレクションに指定されている可能性のある制限の数。
NumberOfIdentifierParts
複合識別子/データベース オブジェクト名の構成要素の数。

DataSourceInformation スキーマ コレクション

DataSourceInformation スキーマ コレクションは、表 55 に記載されているサポートされる列を任意の順序で返すことができます。1 行のみ返されることに注意してください。

表 55 DataSourceInformation コレクションによって返される列名
列名
説明
CompositeIdentifierSeparatorPattern
複合識別子内の複合識別子に一致する正規表現。
DataSourceProductName
データ プロバイダーがアクセスする製品の名前。
DataSourceProductVersion
データ プロバイダーがアクセスする製品のバージョンをデータ ソースのネイティブ形式で示します。
DataSourceProductVersionNormalized
データ ソースの標準化されたバージョン。これにより、String.Compare() を使ってバージョンを比較できるようになります。
GroupByBehavior
GROUP BY 句内の列と、選択リスト内の集計されない列の間の関係を指定します。
Host
データ プロバイダーが接続しているホスト。
IdentifierCase
引用符で囲まれていない識別子の大文字小文字を区別して処理するかどうかを示します。
IdentifierPattern
識別子に一致する正規表現で、識別子の適合値を持ちます。
OrderByColumnsInSelect
ORDER BY 句内の列は選択リスト内にある必要があるかどうかを指定します。true の値は、当該列が選択リストに存在しなければならないことを示し、false の値は選択リストに存在しなくてもよいことを示します。
ParameterMarkerFormat
パラメーターの書式設定方法を示す書式文字列。
ParameterMarkerPattern
パラメーター マーカーに一致する正規表現。もしあれば、パラメーター名の適合値を持ちます。
ParameterNameMaxLength
パラメーター名の最大長(文字単位)。
ParameterNamePattern
有効なパラメーター名に一致する正規表現。
QuotedIdentifierCase
引用符で囲まれた識別子の大文字小文字を区別して処理するかどうかを示します。
QuotedIdentifierPattern
引用符で囲まれた識別子に一致する正規表現で、引用符の付いていない識別子自体の適合値を持ちます。
StatementSeparatorPattern
ステートメント区切り文字に一致する正規表現。
StringLiteralPattern
文字列リテラルに一致する正規表現で、リテラル自体の適合値を持ちます。
SupportedJoinOperators
データ ソースでサポートされる、SQL 結合ステートメントの種類を指定します。

DataTypes コレクション

56 では、DataTypes スキーマ コレクションでサポートされる列について説明します。列は任意の順序で取得できます。

表 56 DataTypes コレクションによって返される列名
列名
説明
ColumnSize
数値以外の列またはパラメーターの長さは、この型の最大長もしくは、データ プロバイダーがこの型に対して定義している長さを参照します。
CreateFormat
CREATE TABLE など、この列をデータ定義ステートメントに追加する方法を示す書式文字列。
CreateParameters
このデータ型の列を作成するときに指定する必要のある作成パラメーター。各作成パラメーターは文字列で、それらを提供する順にカンマで区切って列挙します。
たとえば、SQL データ型の DECIMAL には精度と小数点以下の桁数が必要です。この場合は、文字列 "精度, 小数位" を作成パラメーターに含める必要があります。
精度 10、小数位 2 の DECIMAL 列を作成するテキスト コマンドでは、CreateFormat 列の値を "DECIMAL({0},{1})" とすることができます。完全な型指定は DECIMAL(10,2) となります。
DataType
データ型に対する .NET Framework 型の名前。
IsAutoIncrementable
データ型の値を自動インクリメントするかどうかを指定します。
true:このデータ型の値は自動インクリメントできます。
false:このデータ型の値は自動インクリメントできません。
IsBestMatch
このデータ型は、データ ストア内のすべてのデータ型と、DataType 列の値によって示される .NET Framework データ型の間で最適なものであるかどうかを指定します。
true:最適なデータ型です。
false:最適なデータ型ではありません。
IsCaseSensitive
データ型は文字型で、大文字小文字を区別するかどうかを指定します。
true:文字型で、大文字小文字を区別します。
false:文字型でないか、もしくは大文字小文字を区別しません。
IsConcurrencyType
true:このデータ型は行が変更されるたびにデータベースによって更新され、列の値は以前のあらゆる値と異なるものになります。
false:このデータ型は行が変更されるたびにデータベースによって更新されません。
IsFixedLength
true:データ定義言語(DDL)によって作成されるこのデータ型の列は固定長になります。
false:DDL によって作成されるこのデータ型の列は可変長になります。
IsFixedPrecisionScale
true:データ型は固定の精度と小数点以下の桁数を持ちます。
false:データ型は固定の精度と小数点以下の桁数を持ちません。
IsLiteralsSupported
true:データ型をリテラルで表すことができます。
false:データ型をリテラルで表すことはできません。
IsLong
true:データ型は非常に長いデータを格納します。非常に長いデータの定義は、プロバイダーによって異なります。
false:データ型は非常に長いデータを格納しません。
IsNullable
true:データ型はヌル値を許可します。
false:データ型はヌル値を許可しません。
IsSearchable
true:データ型は非常に長いデータを格納します。非常に長いデータの定義は、プロバイダーによって異なります。
false:データ型は非常に長いデータを格納しません。
IsSearchableWithLike
true:LIKE 述部で使用できません。
false:LIKE 述部で使用できません。
IsUnisgned
true:データ型は符号なしです。
false:データ型は符号付きです。
LiteralPrefix
指定されたリテラルに適用するプレフィックス。
LiteralSuffix
指定されたリテラルに適用するサフィックス。
MaximumScale
型インジケーターが数値型の場合は、これは小数点の右側に割り当てられる最大桁数になります。
それ以外の場合、これは DBNull.Value になります。
MinimumScale
型インジケーターが数値型の場合は、これは小数点の右側に割り当てられる最小桁数になります。
それ以外の場合、これは DBNull.Value になります。
ProviderDbType
パラメーターの型を指定する場合に使用する必要のあるプロバイダー固有の型の値。
TypeName
プロバイダー固有のデータ型名。

ReservedWords コレクション

このスキーマ コレクションは、データ プロバイダーが接続するデータベースで予約されている語句についての情報を公開します。表 57 では、データ プロバイダーがサポートする列について説明します。

表 57 ReservedWords スキーマ コレクション
列名
説明
Reserved Word
プロバイダー固有の予約語。

Restrictions コレクション

Restrictions スキーマ コレクションは、現在データベースに接続しているデータ プロバイダーでサポートされる制限に関する情報を公開します。表 58 では、データ プロバイダーから返される列について説明します。列は任意の順序で取得できます。

Pervasive PSQL ADO.NET データ プロバイダーは標準化された名前を制限に使用します。データ プロバイダーが Schema メソッドの制限をサポートしている場合は、制限に対して常に同じ名前を使用します。

制限値の大文字小文字の区別は基になるデータベースによって決定されますが、DataSourceInformation コレクションの IdentifierCase 値および QuotedIdentifierCase 値によっても決定することができます(DataSourceInformation スキーマ コレクションを参照してください)。

表 58 Restrictions コレクションによって返される列名
列名
説明
CollectionName
指定した制限を適用するコレクションの名前。
RestrictionName
コレクション内の制限の名前。
RestrictionDefault
無視されます。
RestrictionNumber
この制限の、コレクション Restrictions 内における実際の場所。
IsRequired
制限が必要かどうかを指定します。

サポートされる追加のスキーマ コレクションそれぞれに適用する制限については、Additional スキーマ コレクションを参照してください。


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

Additional スキーマ コレクション