Delphi TADOQuery带参数查询报错

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参数了么?谢谢
------解决方案--------------------
'select * from '+
  '(select top :NumOnePage * from '+
  '(select top (:NumOnePage * (:CurPage+1)) * from outputdata '+
  'order by 日期'+
  ')'+
  'orderby 日期 desc'+
  ')'+
  'order by 日期'
select 查询语句,调用ADOQuerySelect.Open;方法

ADOQuerySelect.ExecSQL;是执行,增删改,语句的。
ADOQuerySelect.ExecSQL;-->ADOQuerySelect.Open;

------解决方案--------------------
加上別名

') as t1'+
') as t2'+