sql语句控制Access

shi709394 2006-08-05 08:17:56
上次经过大侠们的帮助sql语句写成了:

update m_b,m_c set m_b.价格=m_b.价格+m_c.上涨 where m_b.等级=''一级''
这语句应该是没问题了吧。新问题来了,在用Delphi编译的时候出现了“当前程序不支持从单一执行返回多个记录”不知是我哪步错了,请各位指教。

先重复一下上次的问题:

我的Access中有两个表:m_b和m_c

m_b有两个字段(价格和等级) m_c有一个字段(上涨)

自动编号 价格 等级 自动编号 上涨
1 5 一级 1 5(变量)
2 3 二级
……

希望得到的结果是:当m_b表等级字段为一级的时候,m_b表的价格字段=当前价格+m_c表中的上涨数(不是一个固定的值)。
...全文
140 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shi709394 2006-08-06
  • 打赏
  • 举报
回复
m_c表中确实只有一个记录,而且我希望的是等级字段下,所有内容为“一级”的都进行“m_b.价格=m_b.价格+m_c.上涨”的运算。那么是否在SQL语句上出错呢?能否帮我改一下。谢谢了。
lwk_hlj 2006-08-05
  • 打赏
  • 举报
回复
你的m_c表应该有个和m_b相关的字段吧!



当 m_b表中有多个一级字段时就是出现上面的数据错误!

应该是m_C表中有多条记录就会出现上面的错误!
lwk_hlj 2006-08-05
  • 打赏
  • 举报
回复
当前程序不支持从单一执行返回多个记录

这是运行的错误

update m_b,m_c set m_b.价格=m_b.价格+m_c.上涨 where m_b.等级=''一级'''
这个SQL有错误

当 m_b表中有多个一级字段时就是出现上面的数据错误!
zhaozhe 2006-08-05
  • 打赏
  • 举报
回复
adoquery1.Active:=true;
这个不要
shi709394 2006-08-05
  • 打赏
  • 举报
回复
无论是用adoquery1.ExecSQL或adoquery1.open 每次光标都在这一行
zhaozhe 2006-08-05
  • 打赏
  • 举报
回复
编译的时候就出现错误,肯定不是SQL语句错误,看光标停在哪行上了?
shi709394 2006-08-05
  • 打赏
  • 举报
回复
改过了,我是用Tedit控制输入"价格",用Tcombobox控制输入"等级",在确定添加按钮上加入了以下语句:

adoquery1.Close;
adoquery1.SQL.Add('update m_b,m_c set m_b.价格=m_b.价格+m_c.上涨 where m_b.等级=''一级''');
adoquery1.Active:=true;
adoquery1.ExecSQL;
编译的时候就出现"当前程序不支持从单一执行返回多个记录"的错误.

只运行编译后的exe就会出现:combobox1没有返回值.
zhaozhe 2006-08-05
  • 打赏
  • 举报
回复
不用Open,
用ExecSQL

2,507

社区成员

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

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