applyupdate(0)怎么在这种情况下失效 (5分)

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

serenesky

Unregistered / Unconfirmed
GUEST, unregistred user!
我做的是midas程序
应用服务器用adoconnect与sqlserver连接,
datasetprovider与客户端连接
客户端使用的是socketconnection
1。
但是当我在客户端用dbnavigator在dbgrid中insert 数据后
再调用 Clientdataset.applyupdates(0)
这时候数据库里的数据不改变
而当我在客户端用dbnavigator在dbgrid中edit or delete 数据后
再调用 Clientdataset.applyupdates(0)
这时候数据库里的数据会改变
各位大虾帮忙看看
2。我在客户端重新改写Clientdataset的commandtext,
这时候可以把数据库里的数据select到客户端
这时候如果我将datasetprovider的resolvetodata设为true
但是当我在客户端用dbnavigator在dbgrid中edit or delete 数据后
再调用 Clientdataset.applyupdates(0)
这时候数据库里的数据会改变
但是如果这时候如果我将datasetprovider的resolvetodata设为false
但是当我在客户端用dbnavigator在dbgrid中edit or delete 数据后
再调用 Clientdataset.applyupdates(0)
这时候数据库里的数据却不改变
请各位大虾帮忙看看
我是新手,这点分数就 都送给大家拉
[blue][/blue]
 

Clientdataset.checkBrowseMode( )
or
Clientdataset.post();
 
我估计是数据更新冲突,你可以加入:ReconcileErrorForm对话框,
然后在ClientDataSet的OnReconcileError事件里加入:
Action:=HandleReconcileError(DataSet, UpdateKind, E);查看错误信息
 
使用下面的函数
function HandleReconcileError(DataSet: TDataSet;
UpdateKind: TUpdateKind;
ReconcileError: EReconcileError): TReconcileAction;
var
UpdateForm: TReconcileErrorForm;
begin
UpdateForm := TReconcileErrorForm.CreateForm(DataSet, UpdateKind, ReconcileError);
with UpdateFormdo
try
if ShowModal = mrOK then
begin
Result := TReconcileAction(ActionGroup.Items.Objects[ActionGroup.ItemIndex]);
if Result = raCorrect then
SetFieldValues(DataSet);
end else
Result := raAbort;
finally
Free;
end;
end;
 
后退
顶部