我用ClientDataset从数据库读出数据,现在要把修改后的数据更新到数据库
但是ClientDataset有新增的记录,就会报"insert into 语法语句错误",无法更新, 
如果只是修改已有数据的话,可以顺利更新到数据库,请问怎么 解决?
我的更新代码 itemCds是TClientDataset类型
var
  Query: TADOQuery;
  i: integer;
  pv: TProvider;
begin
  pv := TProvider.Create(nil);
  Query := TADOQuery.Create(nil);
  Query.Connection := Adoconnection;
  try
      Query.SQL.Text := 'Select * from Item';
      Query.Open;
      Query.Fields.FieldByName('itemid').ProviderFlags :=
        [pfInKey, pfInUpdate, pfInWhere];
      pv.DataSet := Query;
      pv.UpdateMode := upWhereKeyOnly;
      ItemCds.ProviderName := pv.Name;
      if ItemCds.ChangeCount > 0 then
        pv.ApplyUpdates(ItemCds.Delta, -1, i);
  finally
    FreeAndNil(pv);
    Query.Close;
    FreeAndNil(Query);
  end;clientdataset