在分布式多层应用中,在dbgrid控件中怎样获取某字段原来的值?(50分)

  • 主题发起人 主题发起人 浪边人
  • 开始时间 开始时间

浪边人

Unregistered / Unconfirmed
GUEST, unregistred user!
在分布式多层应用中,在dbgrid控件中怎样获取某字段原来的值.
在数据集的字段属性中oldvalue的值在分布式多层应用中始终为空值.
是否此属性在分布式中无效?
怎样解决在dbgrid中如输入值错误时回复为原来的值?
 
Tdatasetclient有一个cancel方法可以回复,
但在post后就不能回复了!
具体你可以看李维的书
 
在你改变了原来的数值之后,oldvalue中才会有数据。否则为NULL。这是正常的。
对于Dbgrid来说,它不直接与数据联系。要实现你的目的,应该对TClientDataSet进行操作。
分两种情况:
一、在Post之前,
如楼上兄弟所言;
二、在Post之后,在ApplyUpdates之前,可以通过TClientDataSet的以下属性来控制客户端的数据:
1、CancelUpdates:取消客户端所有的更新。
2、RevertRecord:取消对于目前记录的更新。
3、UndoLastChange:取消上一次对于数据的更新。
4、SavePoint:这个属性最有用,但有点复杂:在某点SavePoint之后,如要回复到此位置,所有上一次SavePoint之后的数据更新都将会回复。
有这四个方法结合,你想怎样就可以怎样。
 
接受答案了
 
后退
顶部