三层C/S ClientDataSet.ApplyUpdate不能更新数(100分)

  • 主题发起人 主题发起人 Lee.JH
  • 开始时间 开始时间
L

Lee.JH

Unregistered / Unconfirmed
GUEST, unregistred user!
三层C/S,应用服务器DataSetProvider,客户端ClientDataSet,客户端在修改一些纪录
及增加一些新纪录后,ClientDataSet.ApplyUpdate(-1) 可以正常更新数据,而客户端在
增加一些新纪录,再删除一些旧纪录后,ClientDataSet.ApplyUpdate(-1)不能更新数据,
同客户端没再有反应。
 
当数据与数据库中已经存在的数据有冲突的时候,clientdataset不会报错,而是把数据抛弃了。

查看一下是否是什么主键冲突阿,或者什么的数据库的问题。
 
主键没有发生冲突。只要有新增数据,再有旧的数据删除,就不能更新,而且客户端不再
有响应,好象死了一样。
 
你为什么不让程序告诉你发生什么错了呢??
可以让它发送数据库出错信息,具体自己想办法了。^_^
 
检查反回的错误信息
 
用Reconcile,没返回信息,因为客户端已无响应,跟死掉一样。
 
1.ClientDataSet.ApplyUpdate(0);
2.再clientdataset.onreceoncileError事件中写:
showMessage(E.message)
看看提示出什么错。
 
做了,但客户端无响应,跟死掉一样,没任何出错信息返回。
 
//来自:LiZhongYu, 时间:2002-11-8 9:10:00, ID:1420621
//1.ClientDataSet.ApplyUpdate(0);
//2.再clientdataset.onreceoncileError事件中写:
//showMessage(E.message)
//看看提示出什么错。
這個都不行?
那就應該不是前台寫法了﹐看看你的AP吧﹗后台DATA預設值﹐邏輯欄位觀察看看說不定有發現。

 
因为不能同时增加及删除,但可以连续增加,或连续删除,所以都不知是前端还是后端的
问题还是BUG。我是已经没什么新发现的希望了,只望大虾门指点迷津.......
 
没见过这类问题
 
服务器端如果有触发器,先检查一下触发器是否写正确了,我曾经遇过这样的问题
 
数据库服务器没有任何的视图、储存过程和触发器。
 
你看一看是不是有某些字段有默认值
 
是有一个ID字段是自动增加的,但没有包含在fInkey里。
 
小子,给分给我吧,
解决方法有两个:
1.将数据表里的datetime字段的默认值去掉
2.将数据表里的datetime字段改为SMALLDATETIME
 
建議
重新啟動 application server
try it again!!!
 
你是不是在Dll里调用的,如果是在dll里刷新得刷新整个dll调用。
以前我也遇到过类似问题,tnnd被搞得很不妥。。
不知道问题解决了没?
 
自己一开始必须明确:这种频繁修改和更新的三层数据库:错误分析机制是第一位要考虑的。
同意gibboy 和 LiZhougYu:你为什么不让程序告诉你发生什么错了呢?或者自己建立数据库更
新日志或错误分析!
读Delphi的demo
Every thing is ok!
 
to all: 还是不行,没办法啦?
 
后退
顶部