Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere データ・アクセス API » SQL Anywhere .NET 2.0 API リファレンス » iAnywhere.Data.SQLAnywhere ネームスペース (.NET 2.0) » SAConnection クラス » GetSchema メソッド

 

GetSchema(String, String[]) メソッド

この SAConnection オブジェクトのデータ・ソースのスキーマ情報を返します。このとき、文字列が指定されている場合はスキーマ名として使用し、文字列配列が指定されている場合は制限値として使用します。

構文
Visual Basic

Public Overrides Function GetSchema( _
   ByVal collection As String, _
   ByVal restrictions As String() _
) As DataTable
C#

public override DataTable GetSchema(
   string  collection,
   string [] restrictions
);
戻り値

スキーマ情報が格納されている DataTable。

備考

これらのメソッドを使用すると、データベース・サーバに各種のメタデータを問い合わせることができます。メタデータの各型にはコレクション名が指定されており、そのデータを受け取るにはコレクション名を渡す必要があります。デフォルトのコレクション名は MetaDataCollections です。

引数を指定せずに、または MetaDataCollections というスキーマ・コレクション名を指定して GetSchema メソッドを呼び出すことによって、SQL Anywhere .NET データ・プロバイダに問い合わせをして、サポートされているスキーマ・コレクションのリストを判断できます。これによって、サポートされているスキーマ・コレクション (CollectionName)、それぞれがサポートする制限の数 (NumberOfRestrictions)、使用する識別子部分の数のリストから成る DataTable が返されます。

コレクション

メタデータ

Columns データベース内のすべてのカラムに関する情報を返します。
DataSourceInformation データベース・サーバに関する情報を返します。
DataType サポートされているデータ型のリストを返します。
ForeignKeys データベース内のすべての外部キーに関する情報を返します。
IndexColumns データベース内のすべてのインデックス・カラムに関する情報を返します。
Indexes データベース内のすべてのインデックスに関する情報を返します。
MetaDataCollections すべてのコレクション名のリストを返します。
ProcedureParameters データベース内のすべてのプロシージャ・パラメータに関する情報を返します。
Procedures データベース内のすべてのプロシージャに関する情報を返します。
ReservedWords SQL Anywhere が使用する予約語のリストを返します。
Restrictions GetSchema で使用される制限に関する情報を返します。
Tables データベース内のすべてのテーブルに関する情報を返します。
UserDefinedTypes データベース内のすべてのユーザ定義データ型に関する情報を返します。
Users データベース内のすべてのユーザに関する情報を返します。
ViewColumns データベース内のすべてのビュー内のカラムに関する情報を返します。
Views データベース内のすべてのビューに関する情報を返します。

これらのコレクション名は、SAMetaDataCollectionNames クラスの読み込み専用プロパティとしても使用できます。

返される結果は、GetSchema への呼び出しの中で制限の配列を指定することによってフィルタできます。

各コレクションで有効な制限は、次の文を呼び出すことで問い合わせることができます。

GetSchema( "Restrictions" )

コレクションが 4 つの制限を必要とする場合、制限パラメータは、NULL、または 4 つの値から成る文字列です。

特定の制限をフィルタするには、フィルタする文字列を配列内の所定の位置に指定し、使用しない位置には NULL を指定します。たとえば、Tables コレクションは、Owner、Table、TableType という 3 つの制限を持ちます。

Table コレクションを table_name でフィルタするには、次の手順に従います。

GetSchema( "Tables", new string[ ] { NULL, "my_table", NULL } ) 

my_table という名前のすべてのテーブルに関する情報を返します。

GetSchema( "Tables", new string[ ] { "DBA", "my_table", NULL } )

DBA ユーザが所有する my_table という名前のすべてのテーブルに関する情報を返します。

次に、各コレクションが返すカラムの概要を示します。カラムに制限を指定することで、コレクションが返すローの数を減らすことができる場合は、そのカラムの制限名をカッコ内に表示します。制限は、以下のリストで表示される順序で指定されます。

Columns コレクション
DataSourceInformation コレクション
DataTypes コレクション
ForeignKeys コレクション
IndexColumns コレクション
Indexes コレクション
MetaDataCollections コレクション
ProcedureParameters コレクション
Procedures コレクション
ReservedWords コレクション
Restrictions コレクション
Tables コレクション
UserDefinedTypes コレクション
Users コレクション
ViewColumns コレクション
Views コレクション
参照