我使用的是adoquery,在批量更新模式下,当记录集为空时,新增记录后,如取消批量更新(即调用adoquery.cancelbatch();方法,将出错.   错误提示如下:
       
     “行句柄引用了一个已被删除的行或标记为删除的行”
            请各位高手指点,谢谢!!!!!

解决方案 »

  1.   

    也就是在一个空的记录集上,新增加几条记录(还没提交,数据还没写入数据库,只是写入缓存中),然后撤消(刚才增加的这几条记录)       问题是如果记录集(或者说一个还没有记录的表)是空的,撤消就会出错。我是这样做的:
    1.加入一个ADOquery
     (1)(连接数据库,连接表(表中还没有记录),
     (2)cursorType:=ctstatic
     (3)lockType:=itOptimisticbatch
    2.加入datasource控件和dbgrid控件(关联起来)3.加入"增加“,”保存“,"取消"这几个按扭
     (1)”增加“按扭的代码:
        adoquery.append;
     (2)"保存"按扭
       adoquery.updatebatch();
     (3"取消"
      adoquery.cancelbatch();4 先新增几条记录(还没提交)
    5 按"取消"按扭这时就会出错