関連付けられたデータセットでの作業

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

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

すべてのデータベース接続コンポーネントは,アクティブなすべてのデータセットのリストを保持しており,データベースへの接続に使用します。たとえば,接続コンポーネントはこのリストを,データベースへの接続を閉じる際に,すべてのデータセットを閉じるために使用します。

ユーザーがこのリストを使用して,特定の接続コンポーネントで特定のデータベースに接続しているすべてのデータセットに対して,アクションを実行することもできます。

サーバーから切断せずにデータセットを閉じる

ユーザーが接続を閉じると,接続コンポーネントは自動的にすべてのデータセットを閉じます。しかし,データベースサーバーとの接続は切断せずに,すべてのデータセットを閉じたいこともあります。

サーバーから切断せずに開いているすべてのデータセットを閉じるには,CloseDataSets メソッドを使用します。

TADOConnectionTIBDatabase の場合,CloseDataSets を呼び出せば,接続は開いたままになります。TDatabaseTSQLConnection の場合は,さらに KeepConnection プロパティを True に設定しなければなりません。

関連付けられたデータセットを繰り返し処理する

接続コンポーネントを使用するすべてのデータセットに対して,それを閉じる処理以外の処理を実行するには,DataSets プロパティと DataSetCount プロパティを使用します。DataSets は,接続コンポーネントにリンクされている,すべてのデータセットの配列です。TADOConnection 以外のすべての接続コンポーネントの場合,このリストはアクティブなデータセットだけを含んでいます。TADOConnection のリストは,非アクティブなデータセットも含んでいます。DataSetCount は,この配列中のデータセットの数です。

メモ:  更新をキャッシュするために(汎用の TClientDataSet クライアントデータセットではなく)特別なクライアントデータセットを使用する場合,DataSets プロパティには,クライアントデータセット自体ではなく,クライアントデータセットに所有されている内部データセットが含まれます。

DataSets とともに DataSetCount を使用すると,現在アクティブなすべてのデータセットをコード中で順に処理できます。たとえば次のコードは,すべてのアクティブなデータセットについて順番に処理し,データセットのデータを使用するコントロールがあれば使用不可にします。



 var
   I: Integer;
 begin
   with MyDBConnection do
   begin
     for I := 0 to DataSetCount - 1 do
       DataSets[I].DisableControls;
   end;
 end;



 for (int i = 0; i < MyDBConnection->DataSetCount; i++)
   MyDBConnection->DataSets[i]->DisableControls();



メモ:  TADOConnection は,データセットとともに,コマンドオブジェクトもサポートしています。これらは,Commands および CommandCount プロパティを使用すれば,データセットと同じ方法で繰り返し処理を行えます。

関連項目