当每一条记录改变,而游标转移时,记录会自动post 但可以判断当前记录是否处在编辑状态或插入状态if adoQuery1.state in [dsinsert,dsedit] then begin end;
procedure Tjinghofor.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin //查看是否还有数据没有保存 CanClose := dmsl.DataSetApplyUpdates(dmsl.jihoitemqu, ModalResult = mrOK); end; function tdmsl.DataSetApplyUpdates(DataSet: TDataSet; Apply: Boolean): Boolean; begin Result := True; with TDBDataSet(DataSet) do begin if (State in dsEditModes) or UpdatesPending then begin if Apply then begin Database.ApplyUpdates([DataSet as TDBDataSet]); //取消任何其他的一些变化 CancelUpdates; end else begin if (MessageDlg('数据还没有保存,确定退出?', mtConfirmation, [mbYes, mbCancel],0)=mrYes) then CancelUpdates else Result := False; end; end; end; end;
但可以判断当前记录是否处在编辑状态或插入状态if adoQuery1.state in [dsinsert,dsedit] then
begin
end;
begin
//查看是否还有数据没有保存
CanClose := dmsl.DataSetApplyUpdates(dmsl.jihoitemqu, ModalResult = mrOK);
end;
function tdmsl.DataSetApplyUpdates(DataSet: TDataSet; Apply: Boolean): Boolean;
begin
Result := True;
with TDBDataSet(DataSet) do
begin
if (State in dsEditModes) or UpdatesPending then
begin
if Apply then
begin
Database.ApplyUpdates([DataSet as TDBDataSet]);
//取消任何其他的一些变化
CancelUpdates;
end
else
begin
if (MessageDlg('数据还没有保存,确定退出?', mtConfirmation,
[mbYes, mbCancel],0)=mrYes) then
CancelUpdates
else
Result := False;
end;
end;
end;
end;