SetRecords方法:調用該方法可以修改表中當前記錄的多個字段的值,調用該方法之前必須將數據集部件置成編輯狀態,調用該方法之後,還要調用post方法,才能真正將當前記錄的修改寫回數據庫表。調用SetRecord方法時,被修改的字段值必須要與表中實際存在的字段名對應,並且數據類型要相匹配。例如,下面的代碼是修改上面剛剛插入的那條記錄。
Table1.Edit;
Tabel1.SetRecord(, , ,9600000,1200000000);
Tabel1.post;
這一段代碼是修改上面剛剛插入的那條記錄的Area 和Population 字段的值,而對Name,Continent和Captial字段沒有修改。
在數據集部件中,還有一個重要方法Abort方法,該方法是用於取消其他方法的調用的,如在插入記錄、修改記錄和刪除記錄之前,往往需要用戶確認是否真的要執行這種操作,此時調用Abort方法便可取消各種方法的調用,下面的代碼是在用戶刪除一條記之前,讓用戶確認是否真的要執行刪除操作。
Tabel1.BeforeDelete(DataSet:TDataSet);
If MessageDlg('真的要刪除記錄嗎?',
mtConfirmation,mbyesNoCanel,0 <> mryes then
Abort; {取消刪除操作}
關於書簽(BookMark)操作;
書簽操作主要用於在表中快速地定位記錄指針,在應用程序中常常要保存記錄指針所在的位置,在進行其他處理之後,希望能快速地返回到先前指針所在的位置,此時,使用書簽將顯得特別有用。有關書簽操作,Delphi提供了三個方法,它們是:
● GetBookMark
● GotoBookMark
● FreeBokMark
這三個方法一般都是在一起使用,GetBookMark方法返回一個TBookMark類型的變量,該變量包含著指向當前記錄的指針,GotoMark方法用於快速地將記錄指針定位到具有書簽的記錄處。FreeBookmark方法是與GetBookMark方法相反的操作,它釋放書簽標志。下面的程序代碼闡述了書簽操作的一般方法:
BookMark : TBookMark;
<Do something>
BookMark := Table1.GetBookMark; {對當前記錄作書簽標志}
Table1.DisalbeControls; {切斷Table1與數據察覺部件的聯系}
Table.First
While Not EOF Do {對表中全部記錄進行其他處理}
begin
<Do something>
Tabel1.Next;
end;
Tabel1.GotoBookMark(BookMark)
Table1.enableControls; {重新定位記錄指針回到原來的位置}
Tabel1.FreeBookMark(BookMark); {刪除書簽BookMark標志}
15.3.5 數據集部件與數據浏覽部件的連接
數據集部件TTabel和TQuery具有三個方法,DisableControls 方法、EnableControls方法、Refresh方法用於控制數據集部件和與其相連的數據浏覽部件之間的連接,以及控制數據浏覽部件的顯示。在用戶修改和更新以及遍歷數據庫表中的記錄時,調用DisableControls方法具有重要意義,調用DisbaleControls方法以切斷TTable或TQuery部件與數據浏覽部件的連接,使數據浏覽部件暫時失效,否則,在對TTable或TQuery部件的每次修改之後,窗體中所有與它們相連的數據浏覽部件都要更新其顯示內容,這親顯然會減慢處理速度。當遍歷表中的記錄時記錄指針每移動一下,窗體中的數據浏覽部件也隨之更新一下其中的顯示內容,在屏幕上產生閃爍。
EnableControls方法的作用與DisbaleControls方法的作用是相反的,調用EnableControls方法,使TTable或TQuery部件恢復與數據浏覽部件的連接,使暫時失效的數據浏覽部件恢復到正常顯示表中記錄信息的狀態。
Refresh方法用於刷新數據浏覽部件中的顯示。在調用Refresh方法時,必須要確保TTable或TQuery部件是打開的。當數據集中的記錄被修改之後,調用Refresh方法,數據浏覽部件中顯示的信息也隨之改變。