怎么ADO原生对象RecordSet的UnderlyingValue和OriginalValue使用起来毫无区别,而且它的Resync()方法也根本不能重新同步

  • 主题发起人 主题发起人 云淡风轻
  • 开始时间 开始时间

云淡风轻

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么ADO原生对象RecordSet的UnderlyingValue和OriginalValue使用起来毫无区别,而且它的Resync()方法也根本不能重新同步数据。why???还有,将ADODataSet的TField的ProviderFlags的pfInUpdate设为false后,DBGrid(300分)<br />怎么ADO原生对象RecordSet的UnderlyingValue和OriginalValue使用起来毫无区别,
而且它的Resync()方法也根本不能重新同步数据。why???还有,将ADODataSet的
TField的ProviderFlags的pfInUpdate设为false后,DBGrid中的数据仍能修改。
这些都怎么解决呢?万望指教!
 
ADO的Recordset本身有和TClientDataset一樣保留資料集異動記錄的功能, 在ADO稱BatchUpdate
UnderlyingValue與OriginalValue有差別是當啟用此能時,才會有用
如果要使ADO Recordset有此功能, Recordset的LockType要設定為BatchOptimistic;
如果要用ADO BatchUpdate, 則CursorLocation要設定在UseClient, 否則在Open
Recordset後LockType會重新設定為Optimistic
TField旳ProviderFlags, 只有在使用Midas時才會有用
 
另補充, ProviderFlags只是在限制Midas的Provider在Update數據回資料庫時, 不Update
此字段;
前端控件仍可修改字段內容;
如果要限定前端控件的修改, 則要將field的Readonly
設定為True
 
谢谢lorderic,在你的指点下,我的问题解决了。
 

Similar threads

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