使用ClientDataset.Append,它会将数据添加在本地,如果要写到数据库中,使用Update或BatchUpdate

解决方案 »

  1.   

    你的clientdataset必须是可更新的。
    通常有两种,一种是只读,一种是可改。要看你的数据源的设置。
      

  2.   

    ClientDataset最后的递交是用clientdataset1.ApplyUpdates() 
      

  3.   

    clientdataset1.active:=true;
    clientdataset1.append;
    clientdataset1.fieldbyname('field').asstring:='someonefield;
    clienddataset1.applyupdates(0);

    clientdataset1.close;
    clientdataset1.commandtext:='insert into tablename(field1,field2,field3) values('fieldvalue1','field2value2','fieldvalue3')';
    clienddataset1.exesql;
    (如果是三层的,要把中间层的datasetprovider 的options 下的poallowcommandtext 的 false 为true)