码迷,mamicode.com
首页 > 其他好文 > 详细

如何判断数据集中记录是否发生改变(50分)

时间:2019-02-03 18:25:47      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:ota   操作   client   oda   sql   stat   提示   conf   OLE   

使用Delphi7+ADO,如何得知数据集是否发生了改变,即是否有记录值改变,或删除记录,或新增记录,目的是在关闭相关窗口时,提示用户保存数据


if adotable1.Modified then
{//提示保存}


 

if state in [dsinsert,dsedit] then
begin
end;


 

如果事先读出的数据集为Dataset1,对其进行操作,在进行事务提交时,用同样的SQL语句读出数据给数据集DataSet2,然后
DataSet2.Data := DataSet1.Data;
然后判断
if ChangeCount > 0 then .....

数据集必须为TClientDataSet;


 

给我函数你.在你要判断的窗口的CloseQuery事件里这样调用:
CanClose := DM2.DataSetApplyUpdates(DM2.cdsStockOrder, ModalResult = mrOK);


function TDM2.DataSetApplyUpdates(DataSet: TDataSet; Apply: Boolean): Boolean;
begin
Result := True;
with TDataSet(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 confirm(‘数据没有保存, 退出吗?‘) then
Cancel
// CancelUpdates
else
Result := False;
end;
end;
end;
end;

 

如何判断数据集中记录是否发生改变(50分)

标签:ota   操作   client   oda   sql   stat   提示   conf   OLE   

原文地址:https://www.cnblogs.com/jijm123/p/10350714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!