往表里添加数据,实现行数自动加1,可是删除某行后如何让行数重新排列?(10分)

L

lcl_003

Unregistered / Unconfirmed
GUEST, unregistred user!
我用下面的代码实现编号自动加1

with adoquery1 do
begin
Last;
id:=FieldByName('序号').asinteger;
Append;
Edit;
FieldByName('序号').asinteger:=id+1;
Post;
end;
end;

可是我发现如果删除某行后该行的行号就不能再出现了。比如我有以下几行
1
2
3
4
5
我删除4这行,按添加按钮,序号会从6开始,如何让序号还是显示1-5?也就是重新排列?
不会让我再重新往表里插入吧?
 
update tabname set no=no-1 where no>=;No
parambyname('no').asinteger:=
 
写存储过程吧,或者写一个函数循环修改
 
补充ugvanxk:

设一个全局量:N,在DELETE时,给N赋值为删除的ID

在query的afterdelete中执行SQL诗句
update tabname set no=no-1 where no>;No
parambyname('no').asinteger:=N
 
多人接受答案了。
 
顶部