假设你已经放置一个Table控件Table1,一个Query控件Query1,
你的数据库为“S.db";
Query1的SQL语句如下:
SELECT
ID,分数{如果在ID前面加上DISTINCT语句,则将有相同的分数筛选为一个}
FROM 'S.DB'
ORDER BY 分数 DESC;
语句执行结果将成绩按降序排序,然后可以直接将Query1的
执行结果输出到其它你放置的显示控件上如DBGrid等,
Query1.answer字段即为名次;
写入总分的语句也可以如下:
var
Mc:Integer;
Cj:Integer;
p:Integer;
begin
p:=7;
Table1.Tablename:=s.db;
Table1.Open;
Table1.First;
Fs:=Table1.FieldByName('分数').AsSting;
Zf:=Table1.FieldByName('总分').AsInteger;
Query1.Open;
Fs:=Query1.FieldByName('分数').AsString;
Zf:=Query1.FieldbyName('分数').AsInteger+9;//写入总分;
Table1.Next;
While not Eof(Table1)
do
begin
if Fs=Query1.FieldByname('分数').AsInteger//如果有相同的分数;
then
begin
if Quer1.Frist=True
then
begin
Zf:=Zf+9 //将分数+9;
end
else
Zf:=Zf+p;
end;
end;
Query1.Next;
Zf:=Zf+p;
Table1.Next;
p:=p-1;
end;
end;