Data.SqlExpr.TCustomSQLDataSet.SetSchemaInfo
Delphi
procedure SetSchemaInfo(SchemaType: TSchemaType; SchemaObjectName, SchemaPattern: string; PackageName: string = '' );
C++
void __fastcall SetSchemaInfo(TSchemaType SchemaType, System::UnicodeString SchemaObjectName, System::UnicodeString SchemaPattern, System::UnicodeString PackageName = System::UnicodeString());
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
public | Data.SqlExpr.pas Data.SqlExpr.hpp |
Data.SqlExpr | TCustomSQLDataSet |
説明
データセットがメタデータを表すか,そうであればどのような種類のメタデータかを示します。
SetSchemaInfo を呼び出すと,SQL データセットが(CommandText で指定した)SQL コマンドの結果を表すかどうか,またはデータセットがスキーマ情報(メタデータ)のテーブルを表すかどうかを示すことができます。
SchemaType パラメータは,必要な情報の種類を示します。以下のいずれかの値を指定できます。
値 | 説明 |
---|---|
stNoSchema |
スキーマ情報なし。SQL データセットには,サーバーのメタデータではなく,問い合わせまたはストアドプロシージャの結果が格納される。 |
stTables |
SQL 接続の TableScope プロパティで指定した条件に合致するデータベースサーバーの全データテーブルに関する情報。 |
stSysTables |
データベースサーバーの全システムテーブルに関する情報。すべてのサーバーがシステムテーブルを使ってメタデータを保存するわけではない。システムテーブルを使用しないサーバーからシステムテーブルのリストを要求すると,空のデータセットが返される。 |
stProcedures |
データベースサーバー上のすべてのストアドプロシージャに関する情報。 |
stColumns |
指定されたテーブル内のすべての列(項目)に関する情報。 |
stProcedureParams |
指定されたストアドプロシージャのすべてのパラメータに関する情報。 |
stIndexes |
指定されたテーブルに定義されているすべてのインデックスに関する情報。 |
SchemaObjectName は,情報が必要な列,インデックス,パラメータに関するテーブルまたはストアドプロシージャの名前です。SchemaType が stColumns または stIndexes の場合,SchemaObjectName はテーブル名です。SchemaType が stProcedureParams の場合,SchemaObjectName はストアドプロシージャ名です。SchemaType が stNoSchema,stTables,stSysTables,stProcedures,または stPackages の場合,SchemaObjectName は無視されます。
SchemaPattern は,結果のデータセットをフィルタ処理する SQL パターンマスクです。各項目(テーブル,ストアドプロシージャ,項目,パラメータ,またはインデックス)の名前は,このパターンマスクに一致している必要があります。一致していない場合,SQL データセットを開いたときにレコードとして表示されません。SchemaPattern は,ワイルドカードとして「'%'」(任意の長さの任意の文字列)および「'_'」(任意の 1 文字)を使用します。パターンでその記号を文字として使用する場合,その文字を 2 つ重ねます(%% または __)。パターンを使用しない場合は,Pattern を nil(Delphi)または NULL(C++)に設定します。
PackageName は Oracle パッケージの名前です。SchemaType が stProcedures または stProcedureParams の場合,ストアドプロシージャがここで検索されます。サーバーが Oracle サーバーでない場合,またはストアドプロシージャがパッケージで定義されていない場合,PackageName には空の文字列を指定します。
SetSchemaInfo を呼び出してからデータセットを開くと,指定した情報が格納された状態でデータセットが開かれます。SchemaType が stNoSchema の場合,データセットは,CommandText で指定したコマンドに戻ります。
メモ: CommandText プロパティを変更すると,データセットの SchemaType は,自動的に stNoSchema に戻ります。