我做了一个程序,用ADOQuery1作记录集,用dbgrid来显示记录,用ADOQuery2进行添加、删除和修改,但每次删除后,dbgrid不能自动更新,我用ADOQuery1.Close和ADOQuery1.Open来使Dbgrid更新,但是记录指针就变到第一个,如何使修改的时候,指针仍在当前记录;删除后指针到上一个记录;添加后指针到添加的记录;我可以得到当前记录的编号,但用遍历效果太差。请问作到类似的效果,怎样比较好,但添加、删除和修改一定要用SQL来写,就是说必须用啊ADOQuery,其他的都可以不用。谢谢

解决方案 »

  1.   

    几层的?
    为什么添加、删除和修改一定要用SQL来写?
    检索出数据后就可以象ADOTABLE一样操作啊
      

  2.   

    用一个adoquery就行了,楼主怎么用那么多呢
      

  3.   

    你先定义一个全局变量 i
    在不button中
    i:=adoquery1.recno;
    adotable2.recno:=i;
    adotable2.delete;
    adotable1.close;
    adotable1.open;
    adotable1.recno:=i-1;
    这样就可以了
      

  4.   

    用一个query执行添加查询;
    执行相应操作前设置 I := adoquery1.recno;
    删除操作后用 adotable1.recno:=i-1; 
    插入操作后用 adotable1.recno:=i+1; 
      

  5.   

    使用一个adoquery,直接用数据控件来做,就没有问题了
      

  6.   

    //var Book:pointer;
      Book:=adoquery1.GetBook;
      adoquery1.GotoBook(Book);