如何判断记录是否已经被做了修改? 如果修改了,则提示需要保存!(30分)

  • 主题发起人 主题发起人 shephard
  • 开始时间 开始时间
S

shephard

Unregistered / Unconfirmed
GUEST, unregistred user!
我一时想不起来了,是ADO
 
if dataset.state:=dsEdit then ......
 
同意STATE
 
可是我的意思是虽然在DSEDIT状态,但是并没有改变字段的值
 
to hbezwwl:
此方法有一定的缺限。如在DBGRID中,“一不小心”就会POST;

DataSet.Modified 为TRUE,则已经修改。
 
谢谢kingdeezj的指点
 
对,用Modified来判断好。
 
ADO有个oldvalue、newvalue等。

您可以自己娶值
 
如是ADO 用Modified是不能的。
function ThfADODataSet.RequireSave(ADataSet:TADODataSet):Boolean;
var
PendCount, ConflictCount: Integer;
OldFilter: OLEVariant;
begin
Result:=false;

PendCount:=0;
ConflictCount:=0;
with ADataSet do
if Active then
begin
OldFilter:=Recordset.Filter;
try
CheckBrowseMode;
Recordset.Filter:=TOleEnum(adFilterPendingRecords);
PendCount:=Recordset.RecordCount;
Recordset.Filter:=TOleEnum(adFilterConflictingRecords);
ConflictCount:=Recordset.RecordCount;
finally
Result:=(PendCount + ConflictCount) > 0;
Recordset.Filter:=OldFilter;
end;
end;

end;
 
楼上兄弟的程序我有点看不懂
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部