我有以下问题。

ZQuery1.SQL.Text:=
  ' SELECT                                                  '+
  '   IF(q.rank2 = 1, @rank:= 1, @rank:= @rank + 1) AS rank '+
  '   ,q.* FROM (                                            '+
  '   SELECT groep.id - MinGroepId(groep.id) AS rank2       '+
  '     ,groep.otherfields                                  '+
  '   FROM groep                                            '+
  '   ORDER BY rank2 ) q;                                   ';
ZQuery.Open;

运行此代码时,在zquery1中会出现异常Incorrect token followed by ":"
我该怎么解决?我需要使用delphi,因为我不能将这个select放在mysql过程中。
zeos 6不支持返回resultset的mysql过程。
附笔。
我正在使用Delphi2007和MySQL5.1以及Zeos6.6.6。
尽管我很确定版本不重要。
我不愿意转换版本,因为我对这个项目太投入了。

最佳答案

这无法完成,只能参数化该值。
最好的方法是sql.text:=stringreplace(),但是会失去准备查询的速度。

07-27 17:50