读书人

Delphi TADOQuery带参数查询疏失

发布时间: 2012-09-18 16:21:42 作者: rapoo

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'+

读书人网 >.NET

热点推荐