| 方法 | 功能 | 狀態變化 |
|---|---|---|
Edit | 進入編輯狀態 | dsEdit |
Append | 移至檔尾、進入插入狀態 | dsInsert(游標在最後) |
Insert | 在當前記錄前插入、進入插入狀態 | dsInsert(游標在當前前) |
Post | 寫入修改/新增(投遞) | 成功→dsBrowse;失敗→保持原狀態 |
Cancel | 取消當前操作、還原值 | →dsBrowse |
Delete | 刪除當前記錄、游標移下一筆 | →dsBrowse |
SetRecords | 批次修改當前記錄多欄位 | 需先 Edit,後 Post |
Table1.Edit;
Table1.FieldByName('CustNo').AsString := '1234';
Table1.Post;
with Table1 do
begin
Insert; // 或 Append
// 為各欄位賦值...
FieldByName('Company').AsString := '新公司';
Post;
end;
隱性 Post:游標移動、呼叫 Insert/Append 時,Delphi 自動 Post 先前變更。
dsEdit:寫入修改dsInsert:寫入新增dsSetKey:僅回 dsBrowse(查找模式結束)只能取消上次 Post 之後的變更。已 Post 的變更需重新 Edit 修正。
整合「進入插入狀態 + 賦值 + Post」為單一呼叫,參數為欄位值陣列(依欄位順序)。
NULLNil 佔位// 僅填前三欄,Area/Population 自動 NULL
Table1.InsertRecord(['中國', '北京', '五洲']);
// 明確留空 Area,填 Population
Table1.InsertRecord(['美國', '華盛頓', '北美', Nil, 330000000]);
比 Insert+賦值+Post 更簡潔、不易漏寫 Post,適合固定欄位的批次匯入邏輯。