多个ClientDataSet共用一个Provider时Applyupdate的问题(100分)

  • 主题发起人 主题发起人 sixeight
  • 开始时间 开始时间
S

sixeight

Unregistered / Unconfirmed
GUEST, unregistred user!
编辑其中一个ClientDataSet时,又打开了另一个ClientDataSet, 第一个ClientDataSet.applyupdate(0)就无法保存数据了。这各情况应该怎么处理
 
分别调用OnUpdateError事件。
 
公用一个ADOQuery和DataSetProvider来更新单个数据表的更新:
1.DataSetProvider的Exported设为True,ResolvetoDateSet设为True;
增加DataSetProvider的OnApplyUpdates事件处理:
procedure TMyRDM.DataSetProvider1BeforeApplyUpdates(Sender: TObject;
var OwnerData: OleVariant);
begin
with ADOQuery1do

begin
Close;
SQL.Clear;
SQL.Add(VarToStr(OwnerData));
Open;
end;
end;

客户端更新代码:
var
ErrorCount:Integer;
OwnerData:OleVariant;
begin
OwnerData:='SELECT TOP 0 * FROM Table1';
ClientDataSet1.AppServer.AS_ApplyUpdates('DataSetProvider1',ClientDataSet1.Delta,0,ErrorCount,OwnerData);
OwnerData:='SELECT TOP 0 * FROM Table2';
ClientDataSet2.AppServer.AS_ApplyUpdates('DataSetProvider1',ClientDataSet2.Delta,0,ErrorCount,OwnerData);
end;

 
我也碰到过这种情况,一个clientdataset对应一个Provider.
OK!
 
后退
顶部