当然要改?我可是说 Delphi6.0和Win2000的COM+环境!
下面这段程序是可以成功的!在没有修改ComObj.pas文件的情况下!
说明DcomConnection可以成功创建一个远程数据模块COM+对象,而且可以调用接口方法。
但是如果调用DataSetProvider的updates方法则部成功,是不是DataSetProvider有什么要设置的?
procedure TObjQuery.GetRecord(var vDatas: OleVariant);
var
ServerObj: IAppserver;
iRecOut: integer;
Options: TGetRecordOptions;
Params, OwnerData: OleVariant;
begin
try
try//FmyDM为数据模块
//FmyDM.ClientDataSet1.Active := True;
//也可以,成功
//vDatas := FmyDM.ClientDataSet1.Data ;//也可以,成功
ServerObj := FmyDM.DCOMConnection1.GetServer ;
Options := [grMetaData, grReset];
vDatas := ServerObj.AS_GetRecords('DataSetProvider1', -1, iRecOut, Byte(Options), '', Params, OwnerData);
SetComplete;
except
SetAbort;
end;
finally
FmyDM.ClientDataSet1.Active := False;
end;
end;