在access数据库中,update ..set语句可不可以用子查询(50分)

  • 主题发起人 主题发起人 一成
  • 开始时间 开始时间

一成

Unregistered / Unconfirmed
GUEST, unregistred user!
with adoquery1 do begin
close;
sql.text:='update worker set name=:name ,diplomaid=(select diplomaid from diplomaname=:diplomaname),deptid=(select deptid from deptname=:deptname) where id=19';
parameters.ParamByName('name').Value:='张三';
parameters.ParamByName('diploma').Value:='大学';
parameters.ParamByName('dept').Value:='销售部';
execsql;
end;

为何上面的语句不能执行成功,是不是access不支持这样的子查询?除了分开来写还有别的解决方法吗
 
access支持用adoquery做updata.
不过,是用sql.add和sql.exec

 
我是想问
update worker set name=:name ,diplomaid=(select diplomaid from diplomaname=:diplomaname),deptid=(select deptid from deptname=:deptname) where id=19

上面这句更新语句中用到了子查询,但是我在access数据库中更新却出错了,不知为何,是access本身不支持还是别的什么原因?
 
好像Access不支持子查询
 
在子查询中不能有多行返回
 
子查询的返回值应该是唯一的。。。
 
to lb_icesea79
access数据库支持子查询的,至少我知道select语句,insert语句可以

to crazypc
我的语句中select diplomaid from diplomaname=:diplomaname,select deptid from deptname=:deptname
返回值都是维一的,不存在你说的问题

不知道哪位仁兄在access的update语句中成功用过子查询,我怀疑是我上面语句的原因
 
from 语句有问题吗?

在add前最好先clear一下
 
最好先不用参数传入,有可能是参数的问题。
先用固定的值测试一下?
 
固定的值还是不行,我试过,不关参数的事,应该是语句的问题,我只想问一下大家有没有成功
在update set语句中用过子查询
 
不行的,jet sql 确实不支持这种语句.
 
看来是真的不支持了,我只好分下来写了,大家把分分了吧
 
多人接受答案了。
 
后退
顶部