三层结构更新数据问题?(100分)

  • 主题发起人 主题发起人 hw_sea2
  • 开始时间 开始时间
H

hw_sea2

Unregistered / Unconfirmed
GUEST, unregistred user!
请各位大虾帮个忙!我开发三层结构应用系统时,出现了一个问题?我用ADO或BDE连接SQL server数据库,
在用户端我执行clientdatasetx.applyupdate(0);更新不了数据,如果连接的是本地数据库则可以,我是
单表连接分别用Tquery,Tadoquery控件!请问问题出在哪里?
 
试试TADODataSet
 
在TClientDataSet的OnReconcileError事件中写上代码看看是什么错,
Showmessage(E.Message);
 
多试几次,我原理就是这样的,或者动态连接服务端
 
没有用,我是这样的,我用ADO在应用服务器端连接到数据库, 我开发客户端程序,用DBGRID
来显示数据,我修改原有的数据,用APPLYUPDATES(0)来更新,成功!但我去新增/删除数据更
新数据就有错了,不能更新!以后就是去修改也会错不能更新,它的提示为请用APPLYUPDATEs
更新数据,但我实际已经更新了!
在错误处理程式中出错提示为,record no found or change by another user
 
record no found or change by another user ?比较麻烦,我一般是改用WhereKey方式。
在中间层将相应的表的KEY字段的ProviderFlags设置为pfInKey,DataSetProvider的
UpdateMode设置为upWhereKeyOnly即可防止这种情况,我以前碰到是因为触发器造成的。
 
你用数据提交到应用层,再在应用层更新到数据服务器中。不就可加快速度,与数据的安全性,
有兴趣可给我发Email: htyz_008@163.com 再谈论COM++ ,mis 架构.
 
先将D6的pack打上。
检查数据表的关系。
估计第一种情况的机率大一些
 
我解决了大原因为我的数据表不完整而造成!谢谢各位!
 
D6的pack在哪?
 
是不是你库表没有设置主键的问题!
 
用 猛禽 的方法应该没问题,我就是这样更新的。
 
你有自增字段吗,如果有,你就得在你更新之后刷新记录,否则更新后的记录不会取回ID字段
还有你是否有主关键字段,如果没有最好还是加入主关键字段试试!
 
后退
顶部