更新数据库数据时报错

veronBACK 2003-12-18 05:08:56
大家在刷新数据库数据时有没有碰到这个错误啊:
无法为更新定位行.一些值可能在最后一次读取后已更改.
这个问题怎么解决啊!程序大概意思如下:
AddSQL("SELECT * FROM DBO.USER_LINECARD WHERE USER_TELEPHONE=:telcode");
AddParam("telcode",a->Telephone);
ADOQuery1->Open();
ADOQuery1->Edit();
ADOQuery1->FieldByName("STAFF_TIME")->Value=Now();
SetField("USER_NAME",a->UserName);
SetField("USER_ADDR",a->UserAddr);
SetField("USER_NOTE",a->Note);
SetField("USER_MDF",a->VCode);
SetField("USER_PORT",a->HCode);
SetField("USER_OLDMDF",a->OldVCode);
SetField("STAFF_SITE",Staff_Site);
SetField("STAFF_NUM",Staff_Num);
ADOQuery1->Post();
ADOQuery1->Close();
Post()的时候就报错了!大家帮帮忙啊!急!
...全文
21 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
veronBACK 2003-12-22
  • 打赏
  • 举报
回复
我再看看
l_tiger 2003-12-21
  • 打赏
  • 举报
回复
你确定找到记录了吗?
或者是否有以前更新的记录没有post()
guanshangming 2003-12-20
  • 打赏
  • 举报
回复
会不会数据库里没有定义主键,而更新的内容涉及到太多的行。
bzmouse 2003-12-20
  • 打赏
  • 举报
回复
SetField("USER_ADDR",a->UserAddr->AsString.Trim());
veronBACK 2003-12-19
  • 打赏
  • 举报
回复
报错信息是:
无法为更新定位行.一些值可能在最后一次读取后已更改.
字段名没有错,因为有些记录可以更新!可是有的记录就不行了,那些不能更新的记录有一个基本共同的特征,就是USER_ADDR,就是用户地址地段的值好多是已经达到了长度限制,数据库中的这个字段的长度定义是varchar2(60),是不是说可以输入30个以内的汉字?可是在用户界面上的Edit中的MaxLength定义为40,也就是说可以输入20个以内的汉字,并没有超出数据库存储长度啊!我都快晕了!谢谢"书生"!

大家帮我再想一下,有没有别的什么原因啊!
书生 2003-12-19
  • 打赏
  • 举报
回复
报错信息是什么?
不是你字段名写错了?给定值与字段类型不符合等等?

1,178

社区成员

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

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