這三個方法通常都是在一塊兒使用,GetBookMark方法返回一個TBookMark類型的變量,該變量包含着指向當前記錄的指針,GotoMark方法用於快速地將記錄指針定位到具備書籤的記錄處。FreeBookmark方法是與GetBookMark方法相反的操做,它釋放書籤標誌。下面的程序代碼闡述了書籤操做的通常方法:函數
BookMark : TBookMark;大數據
BookMark := Table1.GetBookMark; {對當前記錄做書籤標誌}spa
Table1.DisableControls; {切斷Table1與數據察覺部件的聯繫...下面有其使用解說} 指針
Table.First繼承
While Not EOF Do {對錶中所有記錄進行其餘處理} begin
Tabel1.Next;class
end;
Tabel1.GotoBookMark(BookMark)後臺
Table1.EnableControls; {從新定位記錄指針回到原來的位置}變量
Tabel1.FreeBookMark(BookMark); {刪除書籤BookMark標誌} 循環
-- - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -遍歷
DisableControls方法是在程序修改或後臺有刷 新記錄的時候切斷數據組件,如TTABLE、ADOQUERY等等與組件數據源的聯繫。若是沒有切斷,數據源中只要一有數據的改動,尤爲是批量改動的話,每一筆的改動都會更新窗口中數據瀏覽組件的顯示,這樣會急劇減慢處理過程並且浪費時間。EnableControls的做用相反,用來恢復TTABLE等組件與DATASOURCE的聯繫,並促使數據瀏覽組件更新顯示。 這兩個函數主要阻止組件感應顯示,以加快語句執行速度。 好比,用大量的循環的時候,最好用他們。
1. 數據集的EnableControls, DisableControls方法成對使用的時候, 若是中間的代碼可能會導至出錯的話必須用try..finaly DisableControls; end; 不然會致使數據感知不控制不可以使用;
2. 在遍歷數據或Filter大數據的時候的要用DataSet的EnableControls與DisabbleControls, 不然窗體上的數據感知控件會閃爍. enablecontrols,disablecontrols是防止因數據源的改動而形成界面的閃動!在你須要刷新數據時能夠調這兩個函數,但建議你把它寫在 try...finally語句塊中! 如: try adoQuery1.disablecontrols; adoQuery1.close; adoQuery1.open; finally adoQuery1.enablecontrols; end; TQuery 的EnableControls 和DisableControls 方法都是繼承自TDataSet 類的。因爲TTable 和TQuery 都是TDataSet 的派生類,因此它們都有以上這兩個方法。