我使用一个DBghidEH控件与ADOdataset控件,通过用户选取不同TAB卡改变ADO里的commandtxt,来打开不同的表,同时DBGHIDEH跟着变换不同的列表,但使用中出现一个烦人问题:
  就是当前表中记录行数多(如5行,如把当前光标在定在第5行),换成其它表后的数据少(如2行),只要光标一进入这2行中的任一行,就会出现:书签无效的错误.
我试过 dbghid1.SelectedRows.Clear;
       dbghid1.Selection.Clear;
都不行啊,烦请高手帮忙!

解决方案 »

  1.   

    如果行数小于光标所在行数时候就会出现这个错误
    建议如果存在这个情况,则FreeBookMark
      

  2.   

    在打开以后首先使用ADOQuery.first就不会出现这个问题了.
      

  3.   

    ndujun(小军) :加了first也不行啊tpengcau(右下) :如何freeBookMark 呢?dbghid1.SelectedRows.Clear;还没有Free 吗?
    如果dbghid1.SelectedRows.free则出错
      

  4.   


    在 DBGridEh 中的下列代码中出错:
    if FGrid.DataSource.DataSet.CompareBooks(Pointer(ATop), Pointer(ABottom)) > 0 then
      

  5.   

    与dbghid1绑定的数据集有freebook