我用的是DbgirdEH控件,再在单击其某个标题,则会按这个标题对应的字段进行排序,但我现在有一个这样的问题,当点中某标题时,可以进行排序,但是我如果这个时间把数据集重新查询一下的话,就会报 Index 'SortIndexEh' not found这个错误,现在有什么办法可以不会出现这样的问题呀!

解决方案 »

  1.   

    一般我是用ClientDataset配合 Dbgrid來排序, 自己的可控性高點!>>但是我如果这个时间把数据集重新查询一下的话DbgirdEH, 沒用過, 但如你 重新查询出錯, 那應該有個重新刷新綁定的方法調用吧
      

  2.   

    谢谢两位的关心,我用的也是clientDataset这个控件,
      

  3.   

    你看你的dbgridEh支持哪种排序,如他支持AdoQuery,你要用Table肯定会出错!
      

  4.   

    首先我没有用过这个控件。不过我觉得基本的思路应该是这样的。
    有一点需要你告知,你单击实现排序的功能是控件自带的还是用SQL语句实现的?
    我想,当你排序的时候,把TClientDataSet对象的索引改变了(本身有默认索引),重新查询时,就发生了你所说的异常,因为重新查询后索引并没有改变回来。
    更多的原因,你可以说清楚了,大家再讨论。
      

  5.   

    我单击实现排序的功能不是通过SQL实现的,而是先通过SQL语句查询出结果后,用户点击标题后,在本地(DBGRID)中进行排序!大家是否可以这样一试:一个DBGRID,一个数据源,一个clientDataSet,查询出结果后,点击相应的一个标题,进行排序后,(注意:只能点一次)再次进行查询操作。这时就会报错!