本人用delphi6编写了一个小程序,在程序中用ADOConnection+ADODataSet+DataSource连接。用了一些DBGridEh,RzDBEdit类型的控件做前台,后台用oracle。但在使用时出现了这样一个情况,当新增时ADODataSet.Insert,如果
ADODataSet的数据不在第一条,而是在第二,第二或其它记录时,它会停留在第一条记录里,而且是修改状态。按第二次新增,或停在第一条记录按新增(ADODataSet.Insert)时它才是新增状态。请教各位这是什么原因,如何解决这个新增变修改的问题。

解决方案 »

  1.   

    控制其指向记录,first,last。或者加sql条件
      

  2.   

    kenshinggg所说的方法,我一开始也试过,在新增之前将记录控制在第一条。
    ADODataSet.First;
    ADODataSet.Insert;
    但这样做还是没有用,跟以上的结果一样。
      

  3.   

    ADODATASET.locktye = ltBatchOptimistic用 ADODATASET.append;如果一定要在两条记录中间数据,请移动完指针后再新增。ADODATASET 对于新增状态,移动指针后,如果新插状态下的行集没有任何数据,会CANCEL掉再EDIT,就会出现你说的情况。