DBGrid连接ADOQuery,界面上用DBEdit等控件显示当前条记录的各个字段值。当我随便在DBGrid里点击任意一条记录后,再新增记录时(Append),DBGrid的指针却指向DBGrid里最后一条记录,而不是新建一条空行;界面上的DBEdit等控件也只是显示最后一条记录的各字段值,而不是为空。也就是说新增记录变成了编辑最后一条记录了。
修改记录(Edit)则没有问题。还有一点奇怪的是,刚才新增不是变成了修改最后一条记录了吗,再保存Post(或取消Cancle),DBGrid的指针还是指向最后一条记录,如果现在再新增记录Append的话,就可以新增了没问题了。大家看看是哪里出了问题。

解决方案 »

  1.   

    怎么add?你说的是insert吧?insert一样存在着问题,一insert就变成了对当前条进行修改了。
      

  2.   

    很明显,新增完之后,数据集的状态被你的代码或者界面控件(比如,新增后,DBGrid中移动记录)更改成dsBrowse 或者dsEdit,不处于dsInsert。
      

  3.   

    多谢lynmison(菻梓) 提醒了我,找到原因了是新增Append后,我设置了dbgrid.enable为false了,这个改变了数据集的状态。