关于dbgrid的问题,排序解决了,由于到难题了!

cqwty 2001-09-30 05:05:11
这个问题曾经有人回答过了,可是我在csdn上没有找到该帖子,只有重新发一贴,希望大家能够理解!问题是这样的:有一个表有:学号,科目,成绩;那么我用query控件将对应的科目的所有学生的记录从表中选出来,进行排序,但是那么多学生不可能一个一个的数谁是第几名;那么就只能增加一列来显示排序后的名次了!我在query控件里面新增了一个字段用于表示该列,可是当赋值的时候就出错,不知道怎么才能在dbgrid的名次一列显示对应的名次,请大侠们指点!谢谢!
...全文
126 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
truezerg 2001-10-04
  • 打赏
  • 举报
回复
NO, 那样做的话.分数相同的情况下结果就错了.
yexiaofeng 2001-10-04
  • 打赏
  • 举报
回复
要对已排序的QUERY赋值需使用updatesql
请搜索相关帖子
new_land 2001-10-03
  • 打赏
  • 举报
回复
如果你所在数据库不支持该sql语句,只好用下列办法了
假设sql语句为select 0 order,id,name,mark from student order by mark desc;
//最开始不知道具体名次,故用0代替,其中order为别名
程序段如下
adoquery1.first;
while not adoquery1.eof do
begin
adoquery1.edit;
adoquery1.fieldbyname('order').asstring:=adoquery1.recno;
adoquery1.post;
adoquery.next;
end;

new_land 2001-10-03
  • 打赏
  • 举报
回复
如果是oracle直接用sql语句就可解决
for example
select rownum,id,name,mark from student order by mark desc;
其中rownum为oracle自己的列,表示该记录在结果集中的序号。

cqwty 2001-10-01
  • 打赏
  • 举报
回复
系统提示不是处于编辑状态或者是插入状态!
因为选出来的时候使用了order by语句,
那么怎么实现在dbgrid的名次列能够显示对应的
名次呢?
windindance 2001-09-30
  • 打赏
  • 举报
回复
赋值的时候就出什么错?

5,388

社区成员

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

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