2010-10-25 59 views
3

我目前正在開發一個動態使用數據庫的應用程序。Delphi ADO +書籤

這意味着它可以在任何時間和任何結構下工作。

我的問題是我希望「標記」或書籤某些記錄,因此我需要使用Filter屬性來進行一些搜索,最後我希望刪除過濾器並能夠搜索通過書籤記錄...

但是,只要過濾器設置在指定的過濾器上,書籤只會工作,所以如果我選擇我的第二個加書籤的項目,我會收到與我預期完全不同的記錄,即我做了一個過濾器,並將第一個記錄加入書籤,當我刪除我的過濾器並轉到書籤#1時,我仍然只是去記錄nr。 1.

有沒有其他方法可以做到這一點?還是需要以不同的方式做到這一點?這裏

希望有人在德爾福一些瘋狂的真正解決這個:)

回答

4

數據集可以使用書籤只有一個記錄。 TDataset.BookMark是該書籤記錄的佔位符。數據集過濾後製作的書籤在過濾器消失後也有效。因此,如果您過濾數據集併爲一條記錄添加書籤,然後刪除過濾器並轉至您的書籤記錄,則應該記錄相同的記錄。

如果您不確定您的書籤是否仍然有效,特別是在編輯數據集時;那麼你可以使用TDataset.BookmarkValid方法來驗證你的書籤。

如果你想有一個書籤列表(不只是一個書籤記錄),那麼你必須將它們保存在一個列表或數組中。在Delphi 2009和更新版本中,TBookMark數據類型被定義爲TBytes。在以前的版本中,TBookMark被定義爲字符串。因此,如果您在Delphi 2009之前使用的是Delphi版本,則可以使用TStringList的實例來保存您的書籤列表。如果您使用的是Delphi 2009及更高版本,則可以使用TList泛型類型(在Generics.Collections單元中聲明)的實例來存儲書籤列表。

如果您使用的是DBGrid,則DBGrid具有名爲SelectedRows的屬性,該屬性的類型爲TBookMarkList。您可以使用它來保存網格中選定行的書籤列表。您需要在DBGrid的選項中啓用多選。

+0

謝謝,我會看看這:) – Plastkort 2010-10-25 09:49:55