Clientdataset关于record change by another user错误(20分)

K

kwer

Unregistered / Unconfirmed
GUEST, unregistred user!
提交更新时就这样,问题肯定是mssql触发的,因为有些default字段。
delphi有没有好的三层开发模式,付费的控件就免了总不能个人掏腰包吧。
 
这个错误就是你本身对数据的控制问题。
一般来讲是这样,比如取位,你在保存的时间没有进行取位,但在显示的时候进行了出位,在保存时,由于ClientDataSet所转化的UPDTA语句其条件是将所有其他未改变的字段的值做为条件的,所以会出现这种问题。再有就是截断了字符串等。。。。
 
applaupdates(1) 以后 立即 refresh;
 
三层中的数据库设计,没主键是等死,有默认值是找死
 
轻舞肥羊,你说得太好了。
我只是在尝试三层开发,试用了n多三层开发的控件,感觉做开发都比较复杂
 
楼主你看看 数据表中有没 float类型的 字段,如果float字段的 小数位数过多的话..容易出现这样的错误...float 记录的是近似值..加载到 clientdataset 中 多少有点出入.
容易出错/.
 
轻舞肥羊,话不能说得那么绝对.单对列和自己写扩充线程模型就不会有这种情况发生.
 
自己维护一个主键,然后更新方式采用upWhereKeyOnly
 
clientdataset的更新的时候有几种比较方式,你可以选择
全比较,比较主键等
如果全比较,那么其他用户修改了肯定发生这种异常。
 
这就是三层与两层不同之处,你在跟踪一下你的中间层
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部