首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 資料庫記錄修改核心流程:Edit/Post 方法、DisableControls 效能優化、GotoNearest 不精確查找與 Fields Editor 永久欄位建立

     編輯:Delphi

修改記錄四大核心步驟

  1. 在資料庫中找到目標記錄,移動記錄指標
  2. 呼叫 Edit 方法將 TTable 設為編輯狀態
  3. 修改一或多個欄位
  4. 呼叫 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 可防止錯誤擴散。

不精確查找:GotoNearest 方法

按鈕事件處理:

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)。

Fields Editor 建立永久欄位物件

雙擊 TTable 開啟 Fields Editor,可建立永久 Fields 物件供應用程式使用,控制:永久欄位清單(順序、型別不隨實體表結構變更)、易讀欄位名稱、顯示順序、顯示字串、合法性驗證、計算欄位等。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved