如何实现查询前几名?

sssyyy 2002-05-20 11:17:24
我想根据从库中调出的数值来确定查询的名次?
var
m,n:integer;
begin
data.ADOQuery.Close;
data.ADOQuery.SQL.Clear;
data.ADOQuery.SQL.Add('select 决赛数额 from begin_sysinfor');
data.ADOQuery.Open;
m:=data.ADOQuery.fieldbyname('决赛数额').AsInteger;
grep_infor.gresultquery.SQL.Add('select top n 单位,项目名称,预赛成绩 from groinfor_input');

grep_infor.gresultQuery.SQL.Add('where 项目名称=:items order by 预赛成绩 asc');
grep_infor.gresultQuery.Parameters.ParamByName('items').Value:=sj;
grep_infor.gresultquery.Parameters.ParamByName('n').Value:=m;
grep_infor.gresultQuery.Open;
错误类型:
not found parameters 'n'
...全文
43 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
王集鹄 2002-05-20
  • 打赏
  • 举报
回复
参考:fyje说的方法
Lion_sj 2002-05-20
  • 打赏
  • 举报
回复
当然不对了
是否可以这样写
select top :n
或者Add('select top '+ inttostr(n) + '...'),后面就不需要用参数赋值了
sssyyy 2002-05-20
  • 打赏
  • 举报
回复
是这样吗?
grep_infor.gresultquery.SQL.Add('select top :n 单位,项目名称,预赛成绩 from groinfor_input');
可执行接过错误?
fyje 2002-05-20
  • 打赏
  • 举报
回复
grep_infor.gresultquery.SQL.Add('select top n 单位,项目名称,预赛成绩 from groinfor_input');

n不能作为参数传递的,,你可以
grep_infor.gresultquery.SQL.Add('select top‘+ inttostr(m)+' 单位,项目名称,预赛成绩 from groinfor_input');

CodeDuDu 2002-05-20
  • 打赏
  • 举报
回复
grep_infor.gresultquery.SQL.Add('select top :n 单位,项目名称,预赛成绩 from groinfor_input');
王集鹄 2002-05-20
  • 打赏
  • 举报
回复
n -> :n

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧