关于数据的批更新问题--各位帮帮我呀!SOS~~~~昨天没有人回答。

rzg 2002-11-30 10:58:37
1、SQLServer2000数据库+D6开发环境。
我想用TADOQuery的ltBatchOptimistic来批更新操作的数据。
可是我在执行UpdateBatch(arAll)方法的时候,为什么总是提示:
“无法更新行集定位:一些值可能已在最后读取后改变”

我的表结构大致如下:
TableName: kc_GdSheetDetail

FieldName:

SheetCode:string[20] is not null ,primary key
gdCode:string[20] is not null ,primary key
......
.........
我把上面的SheetCode(外键)+gdCode作为这张表的主键。

请问我该如何处理这种错误阿?

...全文
24 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesage 2002-11-30
  • 打赏
  • 举报
回复
ADOQuery1.CursorType:=ctStatic;
ADOQuery1.LockType:=ltOptimistic;

换成
ADOQuery1.CursorType:=ctDynamic;
ADOQuery1.LockType:=ltBatchOptimistic;
rzg 2002-11-30
  • 打赏
  • 举报
回复
allan2002(丸子):我是在SQL2000中啊。你所得我怎么看不懂啊。呵呵
伯猿虫 2002-11-30
  • 打赏
  • 举报
回复
加一个id 字段为uniqueidentifier 默认值为:newid() 作为主键!试一试,应该可以!
rzg 2002-11-30
  • 打赏
  • 举报
回复
我又把主键用一个ID的自动增量来试了一下同时
ADOQuery1的相关属性为:

ADOQuery1.CursorType:=ctStatic;
ADOQuery1.CursorLocation:=clUseClient;
ADOQuery1.LockType:=ltOptimistic;
这样不应该再出现上面的错去了呀。可是我插入数据的时候还是存在!


这种错误好像就是与索引或是主键有关系!但是不知道怎么解决!

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧