 |
Data Provider for .NET Guide (v11) |
 |
|
GetSchema メソッドによるスキーマ メタデータの取得
アプリケーションでデータ プロバイダーおよびデータ ソースに関するスキーマ メタデータを取得する場合は、Connection オブジェクトの GetSchema メソッドを使用を使用します。各プロバイダーには 5 つの標準メタデータ コレクションも含め、多数のスキーマ コレクションが実装されています。
追加のコレクションを指定したら、データ プロバイダーからスキーマ情報を返す機能がサポートされるようにしておく必要があります。
データ プロバイダーでサポートされるその他のコレクションの詳細については、Additional スキーマ コレクションを参照してください。
メモ:各 ColumnName で必要なデータ型など、さらなるバックグラウンド機能要件については、.NET Framework ドキュメントを参照してください。
MetaDataCollections スキーマ コレクション
MetaDataCollections スキーマ コレクションは、ログインしているユーザーが利用できるスキーマ コレクションの一覧です。MetaDataCollection は、表 49 に記載されているサポートされる列を任意の順序で返すことができます。
表 49 MetaDataCollections スキーマ コレクションによって返される列
列名
|
説明
|
CollectionName
|
コレクションを返すために GetSchema メソッドに渡すコレクションの名前。
|
NumberOfRestrictions
|
コレクションに指定されている可能性のある制限の数。
|
NumberOfIdentifierParts
|
複合識別子/データベース オブジェクト名の構成要素の数。
|
DataSourceInformation スキーマ コレクション
DataSourceInformation スキーマ コレクションは、表 50 に記載されているサポートされる列を任意の順序で返すことができます。1 行のみ返されることに注意してください。
表 50 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 コレクション
表 51 では、DataTypes スキーマ コレクションでサポートされる列について説明します。列は任意の順序で取得できます。
表 51 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 コレクション
このスキーマ コレクションは、データ プロバイダーが接続するデータベースで予約されている語句についての情報を公開します。表 52 では、データ プロバイダーがサポートする列について説明します。
表 52 ReservedWords スキーマ コレクション
列名
|
説明
|
Reserved Word
|
プロバイダー固有の予約語。
|
Restrictions コレクション
Restrictions スキーマ コレクションは、現在データベースに接続しているデータ プロバイダーでサポートされる制限に関する情報を公開します。表 53 では、データ プロバイダーから返される列について説明します。列は任意の順序で取得できます。
Pervasive PSQL ADO.NET データ プロバイダーは標準化された名前を制限に使用します。データ プロバイダーが Schema メソッドの制限をサポートしている場合は、制限に対して常に同じ名前を使用します。
制限値の大文字小文字の区別は基になるデータベースによって決定されますが、DataSourceInformation コレクションの IdentifierCase 値および QuotedIdentifierCase 値によっても決定することができます(DataSourceInformation スキーマ コレクションを参照してください)。
表 53 Restrictions コレクションによって返される列名
列名
|
説明
|
CollectionName
|
指定した制限を適用するコレクションの名前。
|
RestrictionName
|
コレクション内の制限の名前。
|
RestrictionDefault
|
無視されます。
|
RestrictionNumber
|
この制限の、コレクション Restrictions 内における実際の場所。
|
IsRequired
|
制限が必要かどうかを指定します。
|
サポートされる追加のスキーマ コレクションそれぞれに適用する制限については、Additional スキーマ コレクションを参照してください。
 GetSchemaTable メソッドによって返される列 |
 Additional スキーマ コレクション |
|