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参数了么?谢谢
------解决方案--------------------
ADOQuerySelect.ExecSQL;是执行,增删改,语句的。
ADOQuerySelect.ExecSQL;-->ADOQuerySelect.Open;
------解决方案--------------------
加上別名
') as t1'+
') as t2'+
你好,小弟用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 查询语句,调用ADOQuerySelect.Open;方法
'(select top :NumOnePage * from '+
'(select top (:NumOnePage * (:CurPage+1)) * from outputdata '+
'order by 日期'+
')'+
'orderby 日期 desc'+
')'+
'order by 日期'
ADOQuerySelect.ExecSQL;是执行,增删改,语句的。
ADOQuerySelect.ExecSQL;-->ADOQuerySelect.Open;
------解决方案--------------------
加上別名
') as t1'+
') as t2'+