请教高手:数据库更新问题

delphinus 2004-08-24 03:23:14
我用TADOQuery控件连接数据库。并在TDBGrid控件中显示。I have inserted a new record, saved it to the database and then try to edit it. .saving it but happend "Row cannot be located for updating. Some values may have been changed since it was last read.".
谢谢。如果能告诉我为什么 我将感激不尽。
...全文
151 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphinus 2004-08-27
  • 打赏
  • 举报
回复
Jeff20040819(最爱Delphi,C#——苦练内功中) : 用sql怎么写,能举个例子吗?谢谢!
Jeff20040819 2004-08-25
  • 打赏
  • 举报
回复
我以前也遇到过这个问题,很久都没有解决,我最后用的是SQL去写,才解决它

你也可以用SQL试试,应该能解决问题
大聪 2004-08-24
  • 打赏
  • 举报
回复
ado就有这个问题,
我一直没搞定,关注
xyz800316 2004-08-24
  • 打赏
  • 举报
回复
这个问题搜一下有很多的。搂主是不怎么懂中文吗?不过已经说得很清楚了。
是你的数据集关联了多个表或者你的表的键值设定有问题。
Jeff20040819 2004-08-24
  • 打赏
  • 举报
回复
TO YANGYUGW(小杨)

什么是主键更新方式???
delphinus 2004-08-24
  • 打赏
  • 举报
回复
To:ltmb118() 是几个关联的表,但是只是针对一个表的操作。其他的表只是为了显示。比如我操作的是员工表,员工表里有一个单位ID ,而单位名是从 单位表里取的。而且我更新时用的是 adoquery.insert ; editquery.fieldbyname('name'):='xiaowu';.....;adoquery.post . 然后我删除刚刚添加的这条记录用 adoquery.delete 就出错了。
ltmb118 2004-08-24
  • 打赏
  • 举报
回复
与主键有关,TAdoquery 是否为几个表关联形成的SQL语句 ?
yangyugw 2004-08-24
  • 打赏
  • 举报
回复

在阅读李维的书后我自己写了个通用函数以用来解决类似问题
procedure Tmdata.condtable(adoc_tmp:TADOConnection;adoq_tmp: TADOQuery;sort:byte);
var pty:property_;
pties:properties;
icount:integer;
begin

if sort=1 then
begin
adoq_tmp.active:=false;
end;
adoq_tmp.Connection:=adoc_tmp;
adoq_tmp.Active:=true;
pties:=adoq_tmp.Recordset.Properties;
for icount:=0 to pties.Count-1 do
begin
pty:=pties.item[icount];
if pty.name ='Update Criteria' then
pty.Value:=0;
end;

end;
yangyugw 2004-08-24
  • 打赏
  • 举报
回复
这个问题是更新的时候不能定位到你要更新的那条记录。
一些值在你最后一次读取的时候已经被更改了

产生这个错误的原因是 ,你在更新数据库的时候
是以所有值来定位更新的,你最好选择主键更新方式,否则再你更新以前,你的数据的任何字段被其他客户更改后,你都无法更新数据。
rockswj 2004-08-24
  • 打赏
  • 举报
回复
怎么是英语呀。不是很懂。
设置主键了吗。或者有默认值?
炎热的夏季已经过去,家乡想必也要开始落叶了。如果我是小学生,让我以《秋》为题目作文,开头一定是“秋天是收获的季节”。是的,经过了春天的骚动,夏季的彷徨,来到了秋。这是新生报到的季节,动物贮藏食物的季节,马上就到十一长假的季节,这个季节更是收获的季节。 我们在播种时,势必首先考虑收成。种庄稼如此,学习语言更是如此。于是,“语言之争”是各个编程论坛必定讨论的话题,很多甚至是“X经”话题。对此,我的观点是:语言没有好坏之分,只有顺手不顺手和你能发挥到什么程度的问题。我们没有必要追求最新,“最先进”的编程方式,只需要学习好力所能及的语言。 VC的无所不能缺点是繁杂,稍有不慎就不知道什么地方出了包;VB常常被人耻笑过于简单,发布之后要带上一个“仓库”;Delphi虽然有快速开发的优势,但却姥姥不疼舅舅不爱的日渐西山…… 其实对于大多数人来说,我们使用什么应该是需求决定而不是语言本身决定需求,比如:我们希望自动根据数据生成表格,没有必要非用Delphi VC 调用 COM ,我们用用VBA就好了。因此,眼中只有那三种基本结构:判断 循环 跳转就差不多了,再高级一点,弄清楚什么是面向对象面向过程,随便一门语言都不会逃出这点东西。 我很佩服俄罗斯的软件,他们就是将语言工具发挥到极致的例子。比如:我在网上搜索到DOS下硬盘速度测试软件,竟然是Pascal编写的。 至于“学习好力所能及的语言”,我的意思是如果你身边有C语言的高手不妨向他请教或者同他切磋;如果你有学好数据结构的理想,不妨买一本Java描述数据结构的图书慢慢啃;如果你有网络数据库+界面的需求不妨考虑一下Delphi…… 因此,我的观点就是“语言没有好坏之分”,关键是你能掌握到什么程度。 当然,如果你能掌握汇编语言,这一切就更不在话下了。我很希望各位能够将学习语言当作乐趣,我们的杂志也将会以如何让读者在阅读中感到快乐感到成就感为目的。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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