ClientDataSet高手请进(50分)

  • 主题发起人 主题发起人 zwz_good
  • 开始时间 开始时间
Z

zwz_good

Unregistered / Unconfirmed
GUEST, unregistred user!
用dll封装了TDataSetProvider
和主程序中的TClientDataSet相连
添加更改没问题
删除不行 ?
为啥,如果分不够另加
 
各位别只看不发言呀...
 
可能是table沒有主鍵且存在相同記錄吧.
 
to smokingroom
有主键
错误提示为
Record not found or changed by another user
Unable to find record . No key specified
 
你删除的数据是不是被人修改了.因为在删除和修改数据的时候TDataSetProvider的默认的修改查找键是UPDATEMODAL是UPALLWHERE.
 
你在服务段用的是ADOQUERY,它的LOCK TYPE 属性设为BATCH...第一个.
好象还有一个属性要改我记不清了可能是CURSOR TYPE ,你可以改改试试如果改用BDE 就不会报错
 
to qinbinghe,
这个表只有我在用,别人不会改的
to wyn990729
和游标类型有关系吗?
 
我记得改过LOCK TYPE ,和另一个属性就可以了,另一个我记不清了
 
to wyn990729
试过了,
老大,不行呀
 
记录里有没有日期时间字段?
 
http://www.data118.net
大家好,现在注册创业联盟黄金会员,就送注册版的checkpoint大型网络安全防火墙(全球著名)和ORACLE817数据库给大家学习使用!
CheckPoint FireWall网络安全防火墙
作为开放安全企业互联联盟(OPSEC)的组织和倡导者之一,CheckPoint公司致力于企业级网络安全产品的研发,据IDC的最近统计,其FireWall防火墙在市场占有率上已超过44%,《财富》排名前100的大企业里近80%选用了CheckPoint FireWall防火墙。
 
我在对同一条记录修改2次后也遇到楼主的问题。第一次提交没有问题,第二次就出现了问题。我的提交如下:
( ds.dataset as tclientdataset).applyUpdates(-1);
我在上面的语句后面加上
(ds.dataset as tclientdataset).refresh;
后第2次提交就没有问题了。至于什么原因还望高手赐教,我怀疑楼主是先更新后想对同一条记录做删除才出现这个问题的。建议楼主在提交后用refresh刷新客户端的记录。
 
昨天发现了问题的症结
如果该表没有触发器,就不会出现错误
这个触发器是用来级联删除和更新的,我不想删除这个触发器
各位大虾有啥好主意吗?
 
级联删除和更新用数据库表关联就行了,何必用触发器。
 
to wangzai6280
>>级联删除和更新用数据库表关联就行了
如何关联?
 
SQL Server 中就有建关系图的,把两个字段关联上后选择级联删除和更新就可以了。
 
建关系图后
新的问题又出来了
当有级联删除和更新的时候
就报错
Record not found or changed by another user
Unable to find record . No key specified
看来问题是出在级联删除和更新
ClientDataSet数据集和后台数据库的数据不一致的时候就出错呢?
 
你的级联是否正确,我以前用过级联删除,是没有问题的
 
to sealier,
有好几个ClientDataSet连接后台数据表,这些表是有级联删除和更新关系的
其中一个ClientDataSet删除数据后就会影响到其他几个ClientDataSet连接的数据表
我觉得是不是这有毛病?
 
在datasetprovider 的option中有一个级联删除,修改的属性,设为true就可以,我是这样做的
 
后退
顶部