メタデータの取得

提供: RAD Studio
移動先: 案内検索

データベースへの接続:インデックス への移動

すべてのデータベース接続コンポーネントは,データベースサーバー上のメタデータのリストを検索することができます。ただし,検索できるメタデータの種類は異なります。メタデータを検索するメソッドは,サーバーで利用可能なさまざまなエンティティの名前を文字列リストに入れます。この情報は,たとえば,実行時にユーザーが動的にテーブルを選択できるようにするために使用できます。

TADOConnection コンポーネントを使用すれば,ADO データストアで利用可能なテーブルとストアドプロシージャに関するメタデータを検索することができます。この情報は,たとえば,実行時にユーザーが動的にテーブルまたはストアドプロシージャを選択できるようにするために使用できます。

使用可能なテーブルのリスト取得

GetTableNames メソッドは,テーブル名のリストを既存の文字列リストオブジェクトにコピーします。これは,たとえば,ユーザーが開くテーブルを選択できるように,リストボックスにテーブル名を設定するために使用することができます。次のコードは,リストボックスにデータベース上のすべてのテーブル名を設定します。



 MyDBConnection.GetTableNames(ListBox1.Items, False);



 MyDBConnection->GetTableNames(ListBox1->Items, false);



GetTableNames には 2 つのパラメータがあります。テーブルネームを入れる文字列リスト,およびリストがシステムテーブルと通常のテーブルのどちらを含むかを示す論理値です。ただし,すべてのサーバーがシステムテーブルにメタデータを保存しているわけではありません。システムテーブルを要求したときに空白のリストが返されることもあります。

メモ:  ほとんどのデータベース接続コンポーネントの場合,第 2 のパラメータが False であれば,GetTableNames はすべての利用可能な非システムテーブルのリストを返します。ただし,TSQLConnection の場合は,システムテーブルの名前以外のものを取得するとき,リストにどの種類のものを追加するかをさらに細かく制御できます。TSQLConnection を使用する場合,リストに追加される名前の種類は,TableScope プロパティはによって制御できます。TableScope は,リストが通常のテーブル,システムテーブル,シノニム,ビューのうちのどれを含むかを示します。

テーブル内の項目名のリスト化

GetFieldNames は,指定されたテーブル内のすべての項目名を既存の文字列リストに入れます。GetFieldNames は 2 つのパラメータをとります。リストに項目名を入れるテーブルの名前,および項目名を入れる既存の文字列リストです。



 MyDBConnection.GetFieldNames('Employee', ListBox1.Items);



 MyDBConnection->GetTableNames("Employee", ListBox1->Items);



使用可能なストアドプロシージャのリスト取得

データベース内のすべてのストアドプロシージャのリストを取得するには,GetProcedureNames メソッドを使用します。このメソッドは 1 つのパラメータをとります。既存の文字列リストです。



 MyDBConnection.GetProcedureNames(ListBox1.Items);



 MyDBConnection->GetProcedureNames(ListBox1->Items);



メモ:  GetProcedureNames は,TADOConnectionTSQLConnection でのみ使用可能です。

使用可能なインデックスのリスト化

特定のテーブルで定義されたすべてのインデックスのリストを取得するには,GetIndexNames メソッドを使用します。このメソッドは 2 つのパラメータをとります。インデックスを含むテーブルと,既存の文字列リストです。



 SQLConnection1.GetIndexNames('Employee', ListBox1.Items);



 MyDBConnection1->GetIndexNames("Employee", ListBox1->Items);



メモ:  GetIndexNames は,TSQLConnection でのみ使用可能です。ただし,ほとんどのテーブルタイプのデータセットには,同様のメソッドがあります。

ストアドプロシージャのパラメータのリスト化

特定のストアドプロシージャで定義されたすべてのパラメータのリストを取得するには,GetProcedureParams メソッドを使用します。GetProcedureParams は,パラメータの記述レコードへのポインタを TList オブジェクトに入れます。このレコードには指定されたストアドプロシージャのパラメータ(名前,インデックス,パラメータの種類,項目型など)が記載されています。

GetProcedureParams は 2 つのパラメータをとります。ストアドプロシージャの名前と,既存の TList オブジェクトです。



 SQLConnection1.GetProcedureParams('GetInterestRate', List1);



 MyDBConnection1->GetIndexNames("GetInterestRate", List1);



リストに追加されたパラメータ記述を使い慣れた TParams オブジェクトに変換するには,グローバルな LoadParamListItems 手続きを使用します。GetProcedureParams は各レコードの領域を動的に割り当てるため,アプリケーションは情報の処理後に領域を解放しなければなりません。これは,グローバルな FreeProcParams ルーチンを使って行えます。

メモ:  GetProcedureParams は,TSQLConnection でのみ使用可能です。

関連項目