ブックマークに基づくレコードのフィルタ処理
ADO データセットは、ブックマークを使用して特定のレコードにマークを付けて戻るという、データセットの一般的な機能をサポートします。また他のデータセットと同様に、ADO データセットでも、フィルタを使用してデータセット内でアクセス可能なレコードを制限できます。ADO データセットには、これら 2 つのデータセットの一般的な機能を組み合わせた機能が追加されました。それが、ブックマークで識別したレコードのセットにフィルタを適用する機能です。
ブックマークのセットにフィルタを適用するには:
- Bookmark メソッドを使用して、フィルタ適用後のデータセットに含めるレコードにマークを付けます。
- FilterOnBookmarks メソッドを呼び出して、ブックマークを付けたレコードだけが表示されるようにデータセットにフィルタを適用します。
このプロセスを次に示します。
procedure TForm1.Button1Click(Sender: TObject); var BM1, BM2: TBookmark; begin with ADODataSet1 do begin BM1 := Bookmark; BMList.Add(BM1); MoveBy(3); BM2 := Bookmark; BMList.Add(BM2); FilterOnBookmarks([BM1, BM2]); end; end;
void __fastcall TForm1::Button1Click(TObject *Sender) { TBookmark BM1, BM2; BM1 = ADODataSet1->Bookmark; BMList->Add(BM1); ADODataSet1->MoveBy(3); BM2 = ADODataSet1->Bookmark; BMList->Add(BM2); ADODataSet1->FilterOnBookmarks(ARRAYOFCONST((BM1,BM2))); }
上の例では、BMList というリスト オブジェクト(TList<TBookmark>)にブックマークを追加していることに注意してください。これは、後でブックマークが不要になったときに、アプリケーションがそれらを解放(FreeBookmark)できるようにするために必要なことです。