Dbgrid1连接数据库,库中有3个字段:单价,数量及金额.我在Dbgrid1中输入单价及数量后,金额自动计算.我在Dbgrid1的oncolexit事件中判断当前列是不是数量,如果是则计算金额,第一次计算正常,但是当第二次鼠标从数量所在列退出时系统提示:
"无法为更新定位行,一些值可能已在最后一次读取后已更改."
请问是什么原因呢?
"无法为更新定位行,一些值可能已在最后一次读取后已更改."
请问是什么原因呢?
解决方案 »
- 求D对Paradox数据的查询,插入,修改代码
- 怎么实现.把图片拖到画图中去?
- 如何通过VPN访问远程SQL数据库???
- 救急————〉关于安装程序的制作(斑竹,救我)
- 怎么得怎么办才能改更系统颜色(如将真彩16色更改为真彩32色或256色等)
- 哪里有这样的控件下载?
- 请问注册表中如何设置文件的关联呢??还是程序必须有要求??
- 老板买了正版的oracle9i For Linux 但不知如何在RedHat7.2上安装。建议有分。
- project 2002 server 进来有分
- 我用Rave5制作报表,用RAVE模拟显示正常,可程序调用为何数据就显示为“invalid”?
- 今天过生日,散分!
- PPFYK:来拿分!
这种错误是因为你用SQL
更新的后台数据
而前台的表没有及时更新数据
begin
if dbgrid1.SelectedField.FieldName='kcsl' then
{如果单价及数量都不为空,则计算金额}
if (adoquery1.FieldByName('price').AsString<>'') and
(adoquery1.FieldByName('kcsl').asstring<>'') then
begin
adoquery1.Edit;
adoquery1.FieldByName('kcje').AsFloat:=adoquery1.fieldbyname('price').Asfloat
*adoquery1.fieldbyname('kcsl').AsFloat;
adoquery1.Post;
end
else
begin
application.MessageBox('单价及数量必须输入!',
'系统提示',mb_ok+mb_iconinformation);
dbgrid1.SelectedIndex:=7; {单价单元格获得焦点}
end;
end;