在clientdataset中如何处理合成的字段? ( 积分: 50 )

  • 主题发起人 主题发起人 leader47
  • 开始时间 开始时间
L

leader47

Unregistered / Unconfirmed
GUEST, unregistred user!
在clientdataset中编辑数据,写完一条记录后,按下箭头写第二条记录,当写完离开第二条记录后,就弹出错误,‘Trying to modify read-only-field ’。其中有一个是合成的字段,应该是提示这个字段不能修改。
请问怎样解决问题?
注:当只有一条记录时,可以成功保存到数据库。
 
1、查看有什么事情触发,导致对这个字段进行修改, 特别注意 AfterScrool, BeforeScrool, NewRecord 等事件, 像这种,调试状态下应该跟踪得到的
2、把这个字段的 ReadOnly := False
3、参照 http://www.delphibbs.com/delphibbs/dispq.asp?lid=3843873
4、如多条记录提交错误,在 DataSetProvider.BeforeUpdate中对更新语句进行修改
 
第二种方法,把这个字段的 ReadOnly := False,应该写在哪里呢?
另外,我想试一下不让clientdataset自动post,怎样实现?
 
用临时表
 
第二种方法,把这个字段的 ReadOnly := False,应该写在哪里呢?
另外,我想试一下不让clientdataset自动post,怎样实现?

在Open CDS之后
CDS的POST只是在内存中操作,不会影响后台数据,况且想移动记录而不POST记录,好像也做不到。(注意不是ApplyUpdates)
 
行動後先EDIT一下。試試。
 
我碰到過類似的問題,如果是用Query查詢的數據雙擊Query加入所有的字段,把合成的那個字段的ReadOnly設為False即可。
 
接受答案了.
 
后退
顶部