H
hjandy
Unregistered / Unconfirmed
GUEST, unregistred user!
关于<Delphi 5.x Ado/Mts> 一书第九章中若作如下修改将出现如下问题请问有没有解决办法?
1.关于<Delphi 5.x Ado/Mts> 一书第九章
A.建Active Library 加 MTS/Com+数据模块并加入相关控件
B.建查询对象
C.建更新对象
注1)我的客户端和服务器都是Windows 2000,数据库用MsSQL 2000
(2)以下程式在Win 2000 Professional中作测试
问题(1)
書上的UpdateDatas原文如下
try
dsppublicshers.ApplyUpdates(vdatas,iMaxError,iErrorCount);
setComplete;
except
SetAbort;
end;
若改成如下
>dsppublicshers.ApplyUpdates(vdatas,iMaxError,iErrorCount);
>if (iErrorCount <= iMaxError) or (iErrorCount = -1) then
> setComplete
>else
> setAbort;
>except
> SetAbort;
>end;
当执行更新时会出现->"任务对象版本不受支持或无效" <--- 请问原因及解决方法?
问题(2)
若在建 Active Library 加 MTS/Com+数据模块时加入 TDataSetProvider 并在 BeforeUpdateRecord 中加入程式处理资料同样会出现上述错误并且在客户端不能删除任何记录,否则会出现: "任务对象版本不受支持或无效" <--- 请问原因及解决方法?
比如:
procedure TMtsFormula.PFormulaBeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet;
DeltaDS: TClientDataSet;
UpdateKind: TUpdateKind;
var Applied: Boolean);
begin
if UpdateKind in [ukModify] then
begin
with DeltaDS.FieldByName('Prog_id')do
begin
if (pfInUpdate in ProviderFlags) then
ProviderFlags := ProviderFlags - [pfInUpdate];
end;
......
end;
end;
1.关于<Delphi 5.x Ado/Mts> 一书第九章
A.建Active Library 加 MTS/Com+数据模块并加入相关控件
B.建查询对象
C.建更新对象
注1)我的客户端和服务器都是Windows 2000,数据库用MsSQL 2000
(2)以下程式在Win 2000 Professional中作测试
问题(1)
書上的UpdateDatas原文如下
try
dsppublicshers.ApplyUpdates(vdatas,iMaxError,iErrorCount);
setComplete;
except
SetAbort;
end;
若改成如下
>dsppublicshers.ApplyUpdates(vdatas,iMaxError,iErrorCount);
>if (iErrorCount <= iMaxError) or (iErrorCount = -1) then
> setComplete
>else
> setAbort;
>except
> SetAbort;
>end;
当执行更新时会出现->"任务对象版本不受支持或无效" <--- 请问原因及解决方法?
问题(2)
若在建 Active Library 加 MTS/Com+数据模块时加入 TDataSetProvider 并在 BeforeUpdateRecord 中加入程式处理资料同样会出现上述错误并且在客户端不能删除任何记录,否则会出现: "任务对象版本不受支持或无效" <--- 请问原因及解决方法?
比如:
procedure TMtsFormula.PFormulaBeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet;
DeltaDS: TClientDataSet;
UpdateKind: TUpdateKind;
var Applied: Boolean);
begin
if UpdateKind in [ukModify] then
begin
with DeltaDS.FieldByName('Prog_id')do
begin
if (pfInUpdate in ProviderFlags) then
ProviderFlags := ProviderFlags - [pfInUpdate];
end;
......
end;
end;