Delphi TADOQuery带参数查询出错
你好,小弟用Delphi 的TADOQuery带参数查询语句出错,我想取结果的50条到70条这样:
SQL语句:select * from
(select top NumOnePage * from
(select top (NumOnePage* (CurPage+1)) * from outputdata
order by datatime
)
orderby by datatime desc
)order by datetime;
下面是我的delphi7代码:
前面已经声明了CurPage: Word; TotalPage: Word; NumOnePage:Word;
procedure TForm1.Button1Click(Sender: TObject); //*查询*/
begin
CurPage:=0;
NumOnePage:=20;
conn.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=MyAccessDatabase';
conn.LoginPrompt:=false; //不要输入密码
ADOQuerySelect.SQL.Clear;
ADOQuerySelect.SQL.add('select * from '+
'(select top :NumOnePage * from '+
'(select top (:NumOnePage * (:CurPage+1)) * from outputdata '+
'order by 日期'+
')'+
'orderby 日期 desc'+
')'+
'order by 日期'
);
ADOQuerySelect.Parameters.ParamByName('NumOnePage').Value:=NumOnePage;
ADOQuerySelect.Parameters.ParamByName('NumOnePage').Value:=NumOnePage;
ADOQuerySelect.Parameters.paramByname('CurPage').Value:=CurPage;
ADOQuerySelect.ExecSQL;
ADOQuerySelect.Parameters.Clear;
//ADOQuery1.Active:=true;
end;
会有这样式错误提示:Project Project1.exe raised exception class EDatabaseEor with message 'ADOQueySelect:Parameter 'CurPage' not found.Process stopped. Use Step or Run to continue.
它对意思是不是说我CurPage参数没找到,我不是已经有:CurPage参数了么?谢谢
[解决办法]
- SQL code
'select * from '+ '(select top :NumOnePage * from '+ '(select top (:NumOnePage * (:CurPage+1)) * from outputdata '+ 'order by 日期'+ ')'+ 'orderby 日期 desc'+ ')'+ 'order by 日期'
[解决办法]
加上名
') as t1'+
') as t2'+