问题是这样的。
在界面上放置一个DBGrid。
现在要实现从一个行拖动到另一行。这个操作有点象,在设计数据库表中,把一个字段通过拖动的方式向上或者向下移动。请问这个操作如何实现?
谢谢拉!

解决方案 »

  1.   

    说下我的一个比较笨实现方式
    举例:我表里有一个字段代表记录号Tno(唯一连续的自然数),查询时候不显示的
    tno     name
    1       a
    2       b 
    3       c
    4       d
    查询出来在dbgrid上显示
    名字
    a
    b
    c
    d
    当拖动操作的时候(例如把b拖动到c,d之间的位置),可以取到tno 的值
    把b,d之间的记录的tno值-1,b的tno值=d 的tno值-1
    刷新.
      

  2.   

    因为我的数据记录比较少,所以才用的adoquery.edit修改的,大数据量的话用sql语句刷新的话痕迹太明显谁有更好的解决办法不妨指点一下,期待大师级高手讲座。
      

  3.   

    2楼这位兄弟,拖动的操作怎么做,以及做完拖动后刷新DBGrid?这个我不会啊。
      

  4.   

    我想把数据放到本地的ClientDataSet中,做完了以后,再Update回去。
    我现在的问题是,拖动的操作怎么做,以及做完拖动后刷新DBGrid?
    期待大家回答。
      

  5.   

    赞同一楼。刷新太明显的话,可以在拖动ondrapover事件中disablecontrol,等待从新排序完成之后在enablecontrol来刷新grid.
    刷新dbgrid可以用paint或invalidate等方法都可以。