如何进行记录的移动?(我已用ADOQUERY查询出来放在DBGRID里)
表结构是:id(自动),bh(S4),bz(S100)
记录:
1 01 AAAAAAAAAAAAAAAAAAA
2 0101 BBBBBBBBBBBBBB
3 02 CCCCCCCCCCCCCCC
4 03 DDDDDDDDDDDDDDDDD
5 04 EEEEEEEEEEEEEEEEEEE
……随便上下移动一条记录,只改变bh,其余不变
表结构是:id(自动),bh(S4),bz(S100)
记录:
1 01 AAAAAAAAAAAAAAAAAAA
2 0101 BBBBBBBBBBBBBB
3 02 CCCCCCCCCCCCCCC
4 03 DDDDDDDDDDDDDDDDD
5 04 EEEEEEEEEEEEEEEEEEE
……随便上下移动一条记录,只改变bh,其余不变
1 01 AAAAAAAAAAAAAAAAAAA
2 0101 BBBBBBBBBBBBBB
3 02 CCCCCCCCCCCCCCC
4 03 DDDDDDDDDDDDDDDDD
5 04 EEEEEEEEEEEEEEEEEEE 比如现在要下移第一条记录,
结果是: 2 01 BBBBBBBBBBBBBB
1 0101 AAAAAAAAAAAAAAAAAAA
3 02 CCCCCCCCCCCCCCC
4 03 DDDDDDDDDDDDDDDDD
5 04 EEEEEEEEEEEEEEEEEEE
1,记录要移动的两条记录的ID,
2,用变量替换的方法将这两条记录的BH字段交换就好了
建议做一个存储过程,传递两个ID,及要交换的字段名称进去进行更换会比较高效
...var s:Tstringlist;.
..
S:=tSTRINGLIST.CREATE;
adqouery1.first;
while not eof do
begin
S.ADD(adoquery1.fieldbyname('bh').asstring;
next;
for i:=0to adoquery1.recordcount-1 do
begin
if i =adoquery1.recordcount-1then adoquery1.fieldbyname('bh').asstring:=s.strings[0]
else
adoquery1.fieldbyname('bh').asstring:=s.strings[i+1]
end;
...
adoquery1.refresh;
你这样不是等于没有做吗?