首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 三层 ApplyUpdates 无法保存第二回修改的数据

2013-12-10 
delphi 三层 ApplyUpdates 无法保存第二次修改的数据delphi 2010 datasnap服务器端: adocon+adoquery+Data

delphi 三层 ApplyUpdates 无法保存第二次修改的数据
delphi 2010 datasnap

服务器端: adocon+adoquery+DataSetProvider
客户端:TSQLConnection->TDSProviderConnection->TClientDataSet
代码如下
--打开数据集 (没有问题)
procedure TfrmMain.Button2Click(Sender: TObject);
begin
  cdsTBA.CommandText := 'select * from TPADBA';
  if cdsTBA.active then cdsTBA.Close;
  cdsTBA.Open;
end;

--保存数据 (没有任何报错提示)
procedure TfrmMain.Button3Click(Sender: TObject);
var
   NumError:integer;
begin
   cdsTBA.ApplyUpdates(0);
   cdsTBB.ApplyUpdates(0);
end;

-------------------
问题:
第一次修改保存没有问题,在点击了第一次保存后在修改,然后再点保存,没有任何提示但数据无法就是保存到后台
-------------------
DataSetProvider 属性设置 :
updatemodel = true;
options.popro..chnages := true;
options.poallowcomandtext := true
ClientDataSet(cdsTBB) 属性设置 :
ClientDataSet.的TField keyfields 有设值

[解决办法]

引用:
你的后台数据库的字段可能有默认值,第一次修改更新后,后台数据库可能产生默认值,而ApplyUpdates(0)并不能把数据库产生的数据更新到客户端,当客户端数据与后台数据库数据不一致时,ApplyUpdates(0)就不能更新

+1

尤其是主键。

热点排行