locktype := ltBatchOptimistic

解决方案 »

  1.   

      with TCustomADODataSet(myDBGrid.DataSource.DataSet) do
      begin
        if not Active then Exit;
        try
          if LockType=ltBatchOptimistic then
            UpdateBatch;
          Result := true;
        except
          Result := false;
        end;
      end;
      

  2.   

    用UPDATEBATCH的代替了
    使用ADODATASET的UPDATEBATCH应注意:
    1、设定CURSORLOCATION为CLUSECLIENNT。
    2、设定LOCKTYPE为BATCHOPTIMISTIC。
    3、执行的SQL命令必须是SELECT。
    4、设定CUROSTYPE为KEYSET或STATIC。
      

  3.   

    不是不支持,而是不须要了!!
    比起query方便多了
      

  4.   

    问题是我在Dbgrid中输入数据的时候,数据库里面已经把输入的数据保存在表里了,而这样对数据的完整性是很大的破坏。
    liang_z(千山一刀之忍者神龟) :你这段代码该在哪个时间中执行呢?
      

  5.   

    liang_z(千山一刀之忍者神龟) :你这段代码该在哪个事件中执行呢?(对不起,手误)
      

  6.   

    当你设定LOCKTYPE为BATCHOPTIMISTIC时,这个时候就启动'批更新处理'功能了,
    相当于tadoconnection的事务处理,
    在dbgrid所作的任何修改只是显示出来,并没真正保存到库中,直到你用了updatabatch方法!
    cancelbatch是取消所作的更新。
    另:BlackPoint(黑点)讲的很正确