Edit 方法將 TTable 設為編輯狀態Post 方法將修改寫入資料庫預設資料庫表以瀏覽(唯讀)方式開啟,欄位可讀不可改。Edit 進入編輯狀態才能修改當前指標指向記錄,但修改不會立即寫入磁碟,必須 Post 才真正寫入。
with Table do
begin
DisableControls; { 切斷控制項連接,避免每次修改觸發重繪 }
First; { 指標移至第一筆 }
while not EOF do
begin
<讀取欄位值到變數>
<適當修改>
Edit; { 進入編輯狀態 }
<寫回修改值>
Post; { 寫入資料庫 }
Next; { 下一筆 }
end;
EnableControls; { 恢復控制項連接,觸發統一更新 }
end;
DisableControls:修改期間切斷 TTable 與 TDataSource 連接。否則每次修改後 TDataSource 更新所有瀏覽元件,嚴重拖慢效能。EnableControls:恢復連接並觸發所有瀏覽元件更新顯示。First:確保從第一筆開始修改。Next:移至下一筆,避免無限迴圈。使用 With 陳述式操作 TTable 可防止錯誤擴散。
按鈕事件處理:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Table1 do
begin
IndexFieldNames := 'Company';
SetKey;
FieldByName('Company').AsString := Edit1.Text;
GotoNearest;
Label3.Caption := FieldByName('Company').AsString;
end;
end;
需設定 IndexFieldNames='Company'。GotoNearest 總能找到最接近匹配記錄(如前綴匹配 'Dun' 可匹配 'Dunteman'、'Dunwoody')。亦可用 FindNearest(用法同 FindKey)。
雙擊 TTable 開啟 Fields Editor,可建立永久 Fields 物件供應用程式使用,控制:永久欄位清單(順序、型別不隨實體表結構變更)、易讀欄位名稱、顯示順序、顯示字串、合法性驗證、計算欄位等。