字段原内容的恢复(100分)

  • 主题发起人 主题发起人 wangjb
  • 开始时间 开始时间
W

wangjb

Unregistered / Unconfirmed
GUEST, unregistred user!
在DBGRID里,对已经存盘的记录进行修改,由于不符合修改条件,弹出
提示框后,恢复修改以前的内容,怎么办?

注:所做校验实在字段的ONVALIDATE里面

DBGRID连接的DATASET为TADOQUERY,LOCKTYPE=LTOPTIMISTIC
 
ADOQuery1.Cancel;
 
用事务吧!
 
对于要撤消修改的问题,我认为最好在设计期加入事务(Transactions).使用期Rollback方法
可以撤消对数据库的修改。如:
Database1.StartTransaction;
try
TableUpdates;
Database1.Commit;
Except
Database1.Rollback;
Raise;
End;
 
这是一个单表,没必要用事务,ADO.CANCEL不能使用,我在ONDRAWDATACELL中写了语句.
ADO.CANCEL后,则所有显示的记录都为刚才输入的值.
 
如果在前台程序中检查合法性,可以在POST之前使用Xxfeng的方法。
如果在后台过程中检查合法性,可以用itren的方法,但是后台取消修改后,前台应当刷新DBGRID,
有时可能需要再次执行一下QUERY。
 
在BeforEdit之前,用一个数组记录下每个字段的内容,
这样可以随时得到修改前的记录
 
driver:哪还的重新定位记录,我觉得不应该.因为本身还没有写入数据库,它的旧值在
数据库中,是不是还要重新在数据库中取数,再付给它
 
郭大侠的主意不错,是否有更简单的方法呢?
 
如果使用OldValue,NewValue呢?
 
怎么用oldvalue,Newvalue呢?
 
在修改前,通过点击的Cell得到字段名称,在Post事件中进行NewValue和OldValue的比较,
我在写上一条建议的时候大概做了一下,是可行的。
 
多人接受答案了。
 
后退
顶部