ホスト ファイル システムの共通のスキーマ コレクション

共通のスキーマ コレクションは、ホスト ファイルのマネージド プロバイダーによって実装されるスキーマ コレクションです。 マネージド プロバイダーに対してクエリを実行し、サポートされているスキーマ コレクションの一覧を確認するには、引数を指定せずに、またはスキーマ コレクション名 "MetaDataCollections" を指定して GetSchema メソッドを呼び出します。 これにより、サポートされるスキーマ コレクションの一覧、それぞれがサポートする制限数、および使用する識別子部分の数と共に、DataTable オブジェクトが返されます。

次の表では、ホスト ファイル システムの共通のスキーマ コレクションについて説明します。

[列]

列名 データ型 説明
table_catalog String テーブルのカタログ。
table_schema String テーブルを含むスキーマ。
table_name String テーブル名。
column_name String 列名。
ordinal_position Int16 列の識別番号。
column_default String 列の既定値。
is_nullable String 列に NULL 値が許容されるかどうかを指定します。 この列に NULL が許容される場合は、YES が返されます。 その他の場合は NO が返されます。
data_type String システムにより提供されるデータ型。
character_maximum_length Int32 – Sql8、Int16 – Sql7 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大文字列長。 その他の場合は NULL が返されます。
character_octet_length Int32 – SQL8、Int16 – Sql7 バイナリ データ、文字データ、またはテキストおよびイメージ データの最大バイト長。 その他の場合は NULL が返されます。
numeric_precision Unsigned Byte 数値データの概数、正確な数値データ、整数データ、または通貨データの有効桁数。 その他の場合は NULL が返されます。
numeric_precision_radix Int16 数値データの概数、正確な数値データ、整数データ、または通貨データの有効桁数の基数。 その他の場合は NULL が返されます。
numeric_scale Int32 数値データの概数、正確な数値データ、整数データ、または通貨データの桁数。 その他の場合は NULL が返されます。
datetime_precision Int16 日付時刻データ型および SQL-92 interval データ型のサブタイプ コード。 その他のデータ型に対しては NULL が返されます。
character_set_catalog String 列が文字データ型またはテキスト データ型である場合は、文字セットがあるデータベースを示すマスターが返されます。 その他の場合は NULL が返されます。
character_set_schema String 常に NULL が返されます。
character_set_name String この列が文字データ型またはテキスト データ型である場合、文字セットの一意の名前が返されます。 その他の場合は NULL が返されます。
collation_catalog String 列が文字データ型またはテキスト データ型である場合は、照合順序が定義されているデータベースを示すマスターが返されます。 その他の場合、この列は NULL になります。

DataSourceInformation

名前 Type 説明
CompositeIdentifierSeparatorPattern string 複合識別子内の複合セパレーターと一致する正規表現。 たとえば、"\." (SQL Server の場合) や、"@|\." (Oracle の場合) のように指定します。
複合識別子は、通常、データベース オブジェクト名で使用されます。たとえば、pubs.dbo.authors または pubs@dbo.authors のようになります。
SQL Server の場合、"\." という正規表現を使用します。 OracleClient の場合、"@|\." を使用します。
OLE DB の場合、DBLITERAL_CATALOG_SEPARATOR または DBLITERAL_SCHEMA_SEPARATOR を使用します。
DataSourceProductName string "Oracle" や "SQLServer" など、プロバイダーによってアクセスされる製品の名前。
DataSourceProductVersion string プロバイダーによってアクセスされる製品のバージョン。データ ソースのネイティブ形式であり、Microsoft 形式ではありません。
場合によっては、DataSourceProductVersion と DataSourceProductVersionNormalized は同じ値になります。 OLE DB の場合、これらの値は、元になるネイティブ API 内の同じ関数呼び出しに割り当てられているので、常に同じ値になります。
DataSourceProductVersionNormalized string String.Compare() を使用して比較できるような、データ ソースの正規化されたバージョン。 この形式は、バージョン 10 がバージョン 1 とバージョン 2 の間に並べ替えられることがないように、プロバイダーのすべてのバージョンで一貫しています。
たとえば、Oracle プロバイダーは、正規化されたバージョンで "nn.nn.nn.nn.nn" という形式を使用します。このため、Oracle 8i データ ソースは、"08.01.07.04.01" を返します。 SQL Server では、一般的な Microsoft 形式である "nn.nn.nnnn" を使用します。
場合によっては、DataSourceProductVersion と DataSourceProductVersionNormalized は同じ値になります。 OLE DB の場合、これらの値は、元になるネイティブ API 内の同じ関数呼び出しに割り当てられているので、常に同じ値になります。
GroupByBehavior GroupByBehavior GROUP BY 句の列と SELECT リストの集計以外の列間のリレーションシップを指定します。
IdentifierPattern String 識別子と一致し、その識別子の一致した値がある正規表現。 たとえば "[A-Za-z0-9_#$]" になります。
IdentifierCase IdentifierCase 引用符で囲まれていない識別子が、大文字と小文字を区別して扱われるかどうかを示します。
OrderByColumnsInSelect bool ORDER BY 句の列が SELECT リストになければならないかどうかを示します。 値が true である場合、SELECT リストになければならないことを示します。値が false である場合、SELECT リストにある必要がないことを示します。
ParameterMarkerFormat string パラメーターを書式設定する方法を表す書式文字列。
名前付きパラメーターがデータ ソースでサポートされている場合、この文字列内の最初のプレースホルダーは、パラメーター名が書式設定される場所である必要があります。
たとえば、データ ソースが名前に ":" というプレフィックスが付いたパラメーターを要求している場合、これは ":{0}" になります。 これを "p1" のパラメーター名で書式設定すると、結果の文字列は ":p1" になります。
データ ソースでパラメーターの前に '@' が付いていると想定されているが、名前に既に含まれている場合、これは '{0}' になり、"@p1" という名前のパラメーターを書式設定した結果は "@p1" になります。
名前付きパラメーターを要求せず、"?" 文字の使用を要求するデータ ソースの場合、 書式文字列は、パラメーター名を無視する "?" として指定できます。 OLE DB の場合、"?" を返します。
ParameterMarkerPattern string パラメーター マーカーと一致する正規表現。 パラメーター名の一致値 (存在する場合) が含まれています。
たとえば、パラメーター名に "@" という前置文字が含まれている、名前付きパラメーターがサポートされている場合、"(@[A-Za-z0-9_$#]*)" となります。
ただし、前置文字として ":" が付いた名前付きパラメーターがサポートされていて、":" がパラメーター名の一部になっていない場合、":([A-Za-z0-9_$#]*)" となります。
もちろん、データ ソースが名前付きパラメーターをサポートしない場合は、単に "?" になります。
ParameterNameMaxLength int パラメーター名の文字の最大長。 Visual Studio では、パラメーター名がサポートされている場合、最大長の最小値が 30 文字であることを想定しています。
データ ソースが名前付きパラメーターをサポートしない場合、このプロパティは 0 を返します。
ParameterNamePattern string 有効なパラメーター名と一致する正規表現。 異なるデータ ソースでは、パラメーター名として使用できる文字に関して、規則が異なります。
Visual Studio では、パラメーター名がサポートされている場合、文字 "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" が、パラメーター名として有効な、サポートされる最小限の文字のセットです。
QuotedIdentifierPattern string 引用符で囲まれた識別子と一致し、引用符を除いた識別子自体の一致する値のある正規表現。 たとえば、データ ソースが二重引用符を使用して引用符で囲まれた識別子を識別する場合、"((([^\"]|\"\")*)" になります。
QuotedIdentifierCase IdentifierCase 引用符で囲まれた識別子が、大文字と小文字を区別して扱われるかどうかを示します。
StatementSeparatorPattern string ステートメント区切り文字と一致する正規表現。
StringLiteralPattern string 文字列リテラルと一致し、リテラル自体の一致する値のある正規表現。 たとえば、データ ソースが文字列を識別するために単一引用符を使用した場合、"('([^']|'')*')"' になります。
SupportedJoinOperators SupportedJoinOperators データ ソースでサポートされる SQL の JOIN ステートメントの種類を指定します。

DataTypes

列名 データ型 説明
TypeName string プロバイダー固有のデータ型の名前。
ProviderDbType int パラメーターの型を指定するときに使用する必要のある、プロバイダー固有の型の値。 たとえば、SqlDbType.Money または OracleType.Blob です。
ColumnSize long 数値以外の列またはパラメーターの長さは、最大長か、プロバイダーによりこの型に定義された長さのいずれかを参照します。
文字データの場合、これは、最大長か、データ ソースにより定義されている単位で定義された長さです。 Oracle には、長さを指定してから、一部の文字データ型の実際の格納サイズを指定するという概念があります。 これは、Oracle の単位で長さのみを定義します。
日時のデータ型の場合、これは (秒の小数部構成要素の最大有効桁数を前提として) 文字列表現の長さです。
データ型が数値である場合、これは、データ型の最大有効桁数の上限です。
CreateFormat string CREATE TABLE などのデータ定義ステートメントに、この列を追加する方法を示す書式文字列。 CreateParameter 配列の各要素は、書式文字列内で "パラメーター マーカー" で表される必要があります。
たとえば、SQL データ型の DECIMAL には Precision と Scale が必要です。 この場合、書式文字列は "DECIMAL({0},{1})" になります。
CreateParameters string このデータ型の列を作成する場合に指定する必要のある作成パラメーター。 各作成パラメーターは、指定される順序で、コンマで区切られた一覧として文字列内に示されます。
たとえば、SQL データ型の DECIMAL には Precision と Scale が必要です。 この場合、作成パラメーターには、"precision, scale" という文字列が含まれる必要があります。
precision を 10、scale を 2 として DECIMAL 列を作成するためのテキスト コマンド内では、CreateFormat 列の値は DECIMAL({0},{1}) になり、完全な型指定は DECIMAL(10,2) になります。
DataType string データ型の .NET Framework 型の名前。
IsAutoincrementable bool true の場合、このデータ型の値で自動インクリメントが行われます。
false の場合、このデータ型の値で自動インクリメントは行われません。
このデータ型の 1 つの列で自動インクリメントが行われるかどうかを示しているだけであり、この型のすべての列で自動インクリメントが行われるわけではないことに注意してください。
IsBestMatch Bool true の場合、データ ストア内のすべてのデータ型と、DataType 列の値により指定されている .NET Framework データ型との間で、最も一致するデータ型になります。
false の場合、データ型は最も一致するデータ型ではありません。
DataType 列の値が同じ行のセットでは、1 行だけで BestMatch 列が true に設定されます。
IsCaseSensitive bool true の場合、データ型は文字型であり、大文字と小文字が区別されます。

false の場合、データ型は文字型ではなく、大文字と小文字は区別されません。
IsFixedLength bool true の場合、データ定義言語 (DDL) により作成されたこのデータ型の列は、固定長になります。

false の場合、DDL により作成されたこのデータ型の列は、可変長になります。

DBNull.Value の場合、プロバイダーがこのフィールドを固定長の列でマップするか可変長の列でマップするかは不明です。
IsFixedPrecisionScale bool true の場合、データ型には、固定有効桁数と小数点以下桁数があります。

false の場合、データ型の有効桁数と小数点以下桁数は固定していません。
IsLong bool true の場合、データ型には、非常に長いデータが含まれます。非常に長いデータの定義は、プロバイダーによって異なります。

false の場合、データ型には、非常に長いデータは含まれません。
IsNullable bool true の場合、データ型は null に設定できます。

false の場合、データ型は null に設定できません。

DBNull.Value の場合、データ型を null に設定できるかどうかは不明です。
IsSearchable bool true の場合、データ型は、LIKE 述語を除く任意の演算子と共に WHERE 句で使用できます。

false の場合、データ型は、LIKE 述語を除く任意の演算子と共に WHERE 句で使用できません。
IsSearchableWithLike bool true の場合、データ型は、LIKE 述語と共に使用できます。

false の場合、データ型は、LIKE 述語と共に使用できません。
IsUnsigned bool true の場合、データ型は符号なしになります。

false の場合、データ型は符号付きになります。

DBNull.Value の場合、データ型に適用されません。
MaximumScale short 型インジケーターが数値型である場合、小数点の右側にとることができる最大桁数になります。 それ以外の場合は DBNull.Value になります。
MinimumScale short 型インジケーターが数値型である場合、小数点の右側にとることができる最小桁数になります。 それ以外の場合は DBNull.Value になります。
IsConcurrencyType bool true の場合、データ型は、行が変更されるたびにデータベースにより更新され、列の値がすべての前の値とは異なります

false の場合、行が変更されるたびにデータ型がデータベースにより更新されることはありません

DBNull.Value の場合、データベースでは、このデータ型をサポートしていません。
IsLiteralsSupported bool true の場合、データ型は、リテラルとして表現できます。

false の場合、データ型は、リテラルとして表現できません。
LiteralPrefix string 指定されたリテラルに適用されるプレフィックス。
LitteralSuffix string 指定されたリテラルに適用されるサフィックス。
NativeDataType String データ型の OLE DB 型を公開するための OLE DB 固有の列。

MetaDataCollections

列名 データ型 説明
CollectionName string コレクションを返すために GetSchema メソッドに渡すコレクションの名前。
NumberOfRestriction INT コレクションに対して指定できる制限の数。
NumberOfIdentifierParts int 複合識別子部分とデータベース オブジェクト名部分の数。 たとえば、SQL Server の場合は、テーブルに 3 つ、列に 4 つになります。 Oracle の場合は、テーブルに 2 つ、列に 3 つになります。

制限事項

列名 データ型 説明
CollectionName string これらの制限を適用するコレクションの名前。
RestrictionName string コレクション内の制限の名前。
RestrictionDefault string 無視されます。
RestrictionNumber int この特定の制限が収まっているコレクションの制限内の実際の位置。

テーブル

列名 データ型 説明
table_catalog String テーブルのカタログ。
table_schema String テーブルを含むスキーマ。
table_name String テーブル名。
table_type String テーブルの型。 VIEW または BASE TABLE のいずれかです。

参照

ホスト ファイル システムからスキーマ情報を取得する
ホスト ファイルの BizTalk Adapter の構成