怎么把连续的数字插入到delphi的dbgrid中
我在ACCESS中创建了两张表,stu1和stu2,我利用ADOQUERY组件的ADOQUERY1.SQL.ADD('SELECT * From stu1 union select * from stu2 order by 总分 desc');把两张表合并显示在DBgrid中,两张表的所有字段都是一样的,都有排名字段,现在我想对合并的内容进行排序,把1到50(两张表合并起来共50条记录)的数字显示在‘排名’字段中,使他是根据总分来排名的,大家有没有什么办法来实现?最好给出代码。
[解决办法]
drawcell事件中画上去
[解决办法]
ADOQUERY添加一个计算字体段,内容等于RecNo,不过第1笔和最后1笔可能是-1,要处理一下,也可以画
或者改用dbgrideh直接设置属性显示RecNo
[解决办法]
[解决办法]
var
ds: TDataSet;
s:string;
i:Integer;
begin
i:=0;
ds:= self.DBGrid1.DataSource.DataSet;
ds.First;
while not ds.Eof do
begin
ds.Edit;
ds.FieldByName('排名).AsString:=IntToStr(i);
Inc(i);
ds.next;
Application.ProcessMessages;
//ds.Post; //这个是提交数据库
end;
ShowMessage(IntToStr(i)+'行记录设置好序号');
end;
记得以前问过了, 还是一样的方式, 在不ds.post的时候只是在控件这里。
[解决办法]
- SQL code
select row_number() over(order by 总分),*from(SELECT * From stu1 union select * from stu2)