+ -
当前位置:首页 → 问答吧 → List index out of bounds

List index out of bounds

时间:2011-12-01

来源:互联网


Delphi(Pascal) code
with ADOQuery1 do
begin
  ADOQuery1.close;
  ADOQuery1.SQL[2] := 'WHERE refname =''aa''';  //在这里报错 List index out of bounds
end;


需要怎么修改。

作者: w001001001001   发布时间: 2011-12-01

ADOQuery1.SQL[2] := 'WHERE refname ='''+'aa'+'''';

作者: superlixiao78   发布时间: 2011-12-01

或者
 ADOQuery1.SQL[2] := 'WHERE refname ='+quotedstr('aa');

作者: superlixiao78   发布时间: 2011-12-01

ADOQuery1.Add('WHERE refname =''aa''');
或者Filter上写过滤语句

作者: case5166   发布时间: 2011-12-01

ADOQuery1.SQL.Strings[2] := 'WHERE refname =''aa''';

作者: lhylhy   发布时间: 2011-12-01

SQL[2]是第3行,你打开的SQL属性,应该没有3行

建议不要用SQL[]这种用法;
因为有时你并不知道SQL里面有几行,每一行又是那些语句
用SQL.Add();或者SQL.Text重写SQL语句吧,如:

SQL.Clear;
SQL.Add('select * from t where ...');
SQL.Add('and ...');
...


SQL.Text:='select * from t where ... ';

作者: kaikai_kk   发布时间: 2011-12-01

楼上的几种方法都试了,可以都不行,仍旧报同样的错误。

作者: w001001001001   发布时间: 2011-12-01

把你完整的SQL语句贴出来!

作者: babydog01   发布时间: 2011-12-01

5楼的方法可以

作者: w001001001001   发布时间: 2011-12-01

这就说明你的sql只有2行
sql[2]代表第三行。

作者: superlixiao78   发布时间: 2011-12-01

引用 5 楼 kaikai_kk 的回复:

SQL[2]是第3行,你打开的SQL属性,应该没有3行

建议不要用SQL[]这种用法;
因为有时你并不知道SQL里面有几行,每一行又是那些语句
用SQL.Add();或者SQL.Text重写SQL语句吧,如:

SQL.Clear;
SQL.Add('select * from t where ...');
SQL.Add('and ...');
...


SQL.……

作者: zhnglicho   发布时间: 2011-12-01

热门下载

更多