Mts中的一个小问题:关于李维<Delphi 5.x Ado/Mts> 一书第九章[SOS](80分)

  • 主题发起人 主题发起人 hjandy
  • 开始时间 开始时间
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;
 
唔会吧! 难道没有精通Delphi 5->MTS
 
我也想知道!!!
 
首先你的DELPHI打补丁了没有,包括ADO,还有有没有在WINDOWS2000下。
还有就是李维提供的更新代码有误的,你可以去
http://www.delphibbs.com/delphibbs/dispq.asp?lid=844330 看看
 
后退
顶部