データセットを開く/閉じる

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

データセットの理解:インデックス への移動

データセットのデータを読み出したり書き込んだりするには,まずデータセットをアプリケーションで開かなければなりません。データセットを開く方法は 2 つあります。



Open メソッド サンプルコード

設計時にオブジェクトインスペクタを使用するか,実行時にコードによって,データセットの Active プロパティを True に設定する

 CustTable.Active := True;
 CustTable->Active = true;

実行時にデータセットの Open メソッドを呼び出す。

 CustQuery.Open;
 CustQuery->Open();



データセットを開くと,データセットは最初に DB.BeforeOpen イベントを受け取り,データを取り込んでカーソルを開き,最後に DB.AfterOpen イベントを受け取ります。

新しく開かれたデータセットは参照モードになっています。これは,アプリケーションがデータを読めること,また,その中を移動できることを意味しています。

データセットの閉じ方は 2 つあります。



Close メソッド サンプルコード

設計時にオブジェクトインスペクタを使用するか,実行時にコードによって,データセットの Active プロパティを False に設定する

 CustQuery.Active := False;
 CustQuery->Active = false;

実行時にデータセットの Close メソッドを呼び出す。

 CustTable.Close;
 CustTable->Close();



データセットを開くときにデータセットが BeforeOpen イベントと AfterOpen イベントを受け取るのと同様に,閉じるときは DB.BeforeClose イベントと DB.AfterClose イベントを受け取ります。これらのイベントは,たとえば,データセットを閉じる前に,保留中の変更を登録するか,またはそれらを破棄するように,ユーザーに促すために使用することができます。ここで述べたイベントハンドラのコード例を次に示します。



 
 procedure TForm1.CustTableVerifyBeforeClose(DataSet: TDataSet);
 begin
   if (CustTable.State in [dsEdit, dsInsert]) then begin
     case MessageDlg('Post changes before closing?', mtConfirmation, mbYesNoCancel, 0) of
       mrYes:    CustTable.Post;   { 変更を保存する }
       mrNo:     CustTable.Cancel; { 変更を破棄する}
       mrCancel: Abort;            { データセットを閉じる処理を中止 }
     end;
   end;
 end;



 void __fastcall TForm1::VerifyBeforeClose(TDataSet *DataSet)
 {
 if (DataSet->State == dsEdit || DataSet->State == dsInsert)
 {
 TMsgDlgButtons btns;
 btns << mbYes << mbNo;
     if (MessageDlg("Post changes before closing?", mtConfirmation, btns, 0) == mrYes)
 DataSet->Post();
 else
 DataSet->Cancel();
 }
 }



メモ:  Bde.DBTables.TTable コンポーネントの TableName などのプロパティを変更したい場合は,そのデータセットを閉じる必要があります。データセットを再び開いた時点で,新規のプロパティ値が有効になります。

関連項目