楼上说的都对,给你个例子吧,Query需要设置CachedUpdates属性:procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);begin //软件退出时需要用户确认是否保存 if Query1.State in [dsEdit, dsInsert] then begin if MessageDlg('未保存,保存吗?',mtInformation, [mbOK], 0) = mrYes then Query1.ApplyUpdates else Query1.CancelUpdates; end;end;