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

Delphi 資料維護核心方法全解析:Edit/Append/Insert/Post/Delete/Cancel 與 AppendRecord/InsertRecord 簡化寫法

     編輯:Delphi

15.3.4 資料集維護七大標準方法

方法功能狀態變化
Edit進入編輯狀態dsEdit
Append移至檔尾、進入插入狀態dsInsert(游標在最後)
Insert在當前記錄前插入、進入插入狀態dsInsert(游標在當前前)
Post寫入修改/新增(投遞)成功→dsBrowse;失敗→保持原狀態
Cancel取消當前操作、還原值→dsBrowse
Delete刪除當前記錄、游標移下一筆→dsBrowse
SetRecords批次修改當前記錄多欄位需先 Edit,後 Post

Edit/Post 標準修改模式

Table1.Edit;
Table1.FieldByName('CustNo').AsString := '1234';
Table1.Post;

Append/Insert + Post 新增模式

with Table1 do
begin
  Insert;                    // 或 Append
  // 為各欄位賦值...
  FieldByName('Company').AsString := '新公司';
  Post;
end;

隱性 Post:游標移動、呼叫 Insert/Append 時,Delphi 自動 Post 先前變更。

Post 三種狀態下的行為

  • dsEdit:寫入修改
  • dsInsert:寫入新增
  • dsSetKey:僅回 dsBrowse(查找模式結束)

Cancel:未 Post 前的後悔藥

只能取消上次 Post 之後的變更。已 Post 的變更需重新 Edit 修正。

AppendRecord / InsertRecord:一行式新增

整合「進入插入狀態 + 賦值 + Post」為單一呼叫,參數為欄位值陣列(依欄位順序)。

語法彈性

  • 可從最左欄開始,連續傳遞任意長度前綴值
  • 後續未傳欄位自動填 NULL
  • 明確想留空的欄位可傳 Nil 佔位

範例:Country 表(Name, Capital, Continent, Area, Population)

// 僅填前三欄,Area/Population 自動 NULL
Table1.InsertRecord(['中國', '北京', '五洲']);

// 明確留空 Area,填 Population
Table1.InsertRecord(['美國', '華盛頓', '北美', Nil, 330000000]);

比 Insert+賦值+Post 更簡潔、不易漏寫 Post,適合固定欄位的批次匯入邏輯。

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