同时操作两张表进行赋值时总提示 from子句错误 用的是access的数据库
with adoquery1 do begin
close;
sql.Clear;
sql.Add('select stnf.zm,stnf.yl,calc.stat,calc.pre from stnf,calc ');
sql.Add('update stnf');
sql.Add('set stnf.yl=calc.pre');
sql.Add('where stnf.zm=calc.stat ');
open;
end;我把update那些注掉后就没问题,这是怎么回事?
我需要从calc这张表读取stat和pre两列,与stnf这张表的zm,yl进行比较,如果zm=stat 就把pre赋给yl
vSQL:string;
.....
vSQL := ' update stnf '
+ ' set stnf.yl=calc.pre '
+ ' from calc, stnf '
+ ' where stnf.zm=calc.stat';with adoquery1 do
begin
close;
sql.clear;
sql.text := vSQL;
open;
end;
不明白你的流程是要做是什么
另外不建议使用Sql.Add
因为在Acsses中,是不支持多Sql语句查询的,在sql中可以使用
sql.Add('set stnf.yl=calc.pre');
sql.Add('select stnf.zm,stnf.yl,calc.stat,calc.pre from stnf,calc ');
sql.Add('where stnf.zm=calc.stat ');