我用TADODataSet得到从数据库查询的数据,想先在客户端编辑修改,最后一次性提交更新到数据库,请问各位高手有什么好办法,或者别的变通办法.

解决方案 »

  1.   

    LockType:=ltBatchOptimistic
    缓存模式下,提交数据库时updateBatch
      

  2.   

    不行啊这样调用设置时用:ds.LockType:=ltBatchOptimistic;
     
    调用时出错can't perform this operation on an open dataset
      

  3.   

    ds.Close;
    ds.LockType:=ltBatchOptimistic;
      

  4.   

    我以变量形式声明的
    var
      ds: TADODataSet好像不行
      

  5.   

    《Delphi 7数据库开发》里面讲的有!
      

  6.   

    LockType:=ltBatchOptimistic的缓存模式下修改记录,不要提交数据,当你完成你所做的所以修改最后在做ApplyUpdates(-1)提交数据
      

  7.   

    还是不行
    当我给ds某个字段赋值时
    ds.FieldValues[DB_FILED_Image_PosSign]:= PosSign;
    出错 dataset not in Edit or insert mode
      

  8.   

    LockType:=ltBatchOptimistic
    缓存模式下,提交数据库时updateBatch
    我也这样认为
      

  9.   

    搞定了 但是没有但是设置LockType:=ltBatchOptimistic 那么简单 还要设置
    commandtext 属性
      

  10.   

    with DM_server.ClientDataSet3 do
        begin
          if not active then
            open;
          ...
          edit;
          FieldByName('Id').AsString:=User;
          FieldByName('Name').AsString:=ware_name;
          FieldByName('khbh').Value:=idcount;
          FieldByName('khdz').AsString:=sPath+'\'+User;
          Post;
          ApplyUpdates(1);
        end;