首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

SQL语句结束的地方缺少‘;’,求解,该怎么解决

2012-03-04 
SQL语句结束的地方缺少‘’,求解编绎成功,点击按扭后弹出错误:sql语句的结束位置缺少Delphi(Pascal) cod

SQL语句结束的地方缺少‘;’,求解
编绎成功,点击按扭后弹出错误:sql语句的结束位置缺少';'

Delphi(Pascal) code
procedure TfCosting.btnCalculateClick(Sender: TObject);var  ss:string;begin  showmessage(strsql);  if Length(strsql)>0 Then  ss:=' where t2.FNumber in ('+Copy(strsql,1,Length(strsql)-1)+') and t2.ffactory = ' + quotedstr(cmbfactory.Text) + ' and t2.fyear = ' + quotedstr(cmbyear.Text) + ' and t2.fperiod = ' + quotedstr(cmbperiod.Text) ;  ss:= ss + ' GROUP BY t2.FYear,t2.FPeriod,t2.FFactory ';  with datamd.ADOCalculateTemp do   begin      close;      sql.Clear;      sql.Text := 'update t_calculateTemp t1,t_overhead t2 set t1.FAmount = SUM(t2.FAmount) ';      sql.Text := sql.Text  + ss ;      showmessage(sql.Text ); //执行完这句后出错,请问是怎么回事,Showmessage(sql.text)的结果如图      execsql;      showmessage('成功');   end;  //更新单位PCS 所摊费用  with datamd.ADOCalculateTemp do   begin      close;      sql.Clear;      sql.Text := 'update t_capacity t2,t_calculateTemp t1 set t1.FAmount_PER = t1.famount/t2.ftotal  where t1.FYear=t2.fyear and t1.FPeriod=t2.fperiod and t1.FFactory=t2.FFactory ';      showmessage(sql.Text );      execsql;      showmessage('成功');   end;end;

SQL语句:



运行完注释那一行后出错,sql语句的结束位置缺少';',请大家帮我看看是怎么回事


[解决办法]
友情帮顶
[解决办法]
update 不需要 group的
[解决办法]
SQL有问题,建议先在SQL查询分析器里执行一次语句,看能否通过,再写到程序里调试.
[解决办法]
这条语句
update field = sum(...)...group by ...
update sql没这语法
[解决办法]
下面这种写法是錯的
update t1,t2 set ...

改成
update t1 set ... from t2 where ...

用geoup by可以这样:
update t1 set f1=(select sum(f2) from t2 where .. group by ..)

[解决办法]
没仔细看,我的错,用域函数搞定,access的sql和sqlserver是不同的,以下为我的测试代码,执行成功,照着改吧
UPDATE table1 AS A
SET d = DFirst( "select Sum(d) as tt from table1", "table1") 

热点排行