如何进行记录的移动?(我已用ADOQUERY查询出来放在DBGRID里)
表结构是:id(自动),bh(S4),bz(S100)
记录:
 1  01    AAAAAAAAAAAAAAAAAAA
 2  0101  BBBBBBBBBBBBBB
 3  02    CCCCCCCCCCCCCCC
 4  03    DDDDDDDDDDDDDDDDD
 5  04    EEEEEEEEEEEEEEEEEEE
 ……随便上下移动一条记录,只改变bh,其余不变

解决方案 »

  1.   

    adoquery.next?看不懂问题,什么叫只改变bh,其余不变
      

  2.   

    记录:  
     
     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  
      

  3.   

    字段再多也不怕,怕就是你要移的东西太多,只移动一个字段应该比较简单,
    1,记录要移动的两条记录的ID,
    2,用变量替换的方法将这两条记录的BH字段交换就好了
    建议做一个存储过程,传递两个ID,及要交换的字段名称进去进行更换会比较高效
      

  4.   

    大家还是再研究研究,或者是不放在DBGRID里,有没有别的方法?
      

  5.   

    不理解意思
    ...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;
      

  6.   

    wxjh(秋水居士) :
      你这样不是等于没有做吗?