使用公文包模式
clientdataset.filename='filename'
在使用clientdataset.applyupdate(-1)时,报上述错误
但是查看数据库中,记录已经被保存.,但在fielname.cds中没有记录
clientdataset.filename='filename'
在使用clientdataset.applyupdate(-1)时,报上述错误
但是查看数据库中,记录已经被保存.,但在fielname.cds中没有记录
解决方案 »
- 求一个Delphi7写的SGIP1.2的例子
- 求救:两台机器用Modem连接后,一台机器怎么访问另一台机器?
- 清除系统事件日志工具。
- delphi怎样调用boland C++ builder 的lib
- 寻找用于并口通讯的控件
- 新手求救,哪位高手快来帮帮我呀!!!
- OleContainer1.CreateObjectFromFile('c:\2.txt',false),怎么提示‘找不到应用程序’??哪儿错误
- 怎么对红外口编程?
- 教教我怎样在DELPHI中查看对象和代码
- 救急!!!!为何我的BDE ADMINISTATOR 无法运行???
- 请问一个"Record not found or changed by another user"错误的问题!
- MIDAS 远程访问问题
有没有高手真正能解决这个问题.
关键是:有时行,有时不行,
里面讲得很清楚
更新时要判断服务器中的记录是不是已经被另一用户更新了
1 如果没被更新(你的程序就没问题)
2 如果被更新:又有二种情况
1)主键被更新,将找不到该记录
2)其它字段被更新,可以找到,但你要设定几种处理方式要用到DATA和DELTA属性,书中讲得再清楚不过了
你的问题是根本没考虑到这一层.
需要动态增加KEY,
AdoQuery.FieldByName(sFieldName).ProviderFlags := [pfInUpdate, pfInWhere, pfInKey]
另外,如果用所有字段更新,可以查一下字段中有没有DATETIME类型的字段,这类字段在传递过程中会去掉分以后值,也会找不到记录更新,如果有改成SMALLDATETIME。