MIDAS / COM+(30分)

  • 主题发起人 主题发起人 nsj
  • 开始时间 开始时间
N

nsj

Unregistered / Unconfirmed
GUEST, unregistred user!
在客户端用TCLIENTDATASET取得数据;
当应用程序服务器是MIDAS服务器是能取得数据;
当应用程序服务器是COM+对象时,报错;
BOF或EOF中一个为真或者当前记录被删除;
当前操作需要一条当前记录。
 
有这种问题?不知你的COM+是如何实现的?
 
最简单的一个COM+对象;
在MTS DATAMODULE里放了一个TADOCONNECTION,一个TADOQUERY及一个TDATASETPROVIDER组
件,TDATASETPROVIDER的ALLOWCOMMANDTEXT为真就这样。
 
是不是没打Delphi的ADO补丁
 
补丁1还是补丁2?
 
先安装了D5的PACK1,再装的ADO补丁2.
 
[:(]多试两下嘛,嘻嘻
 
while not eofdo
begin
...
end;
last;
close;
 
应该是ADO得问题呀
 
客户端有没有存取COM+包的权限?(角色问题)
三层不能连通的问题很复杂,
建议你自己解决,
对提高你的能力相当有帮助。
用其它应用程序建立这个COM+对象也出错吗?你用的数据库是什么?NT用户权限设置怎样?
等等等等
 
还哥们我们有同样的经历虽然我没明白为什么但是我换钟方法让过去了
var LogionObj2:Imts_data;
OwnerData:oleVariant;
Irecout:integer;
Params:oleVariant;
Options:TgetrecordOptions;
Str:string;
i,a:Dword;
begin
if Mts_data2.Text='' then
begin
Showmessage('Input');
exit;
end;
button21.Enabled:=false;
i:=gettickcount();
Options :=[grmetadata,grreset];
STr:='select * from T_Mts Where id='+Trim(Mts_data2.Text);
LogionObj2:=CoMts_data.Createremote(Trim(Mts_edit1.text));
ClientDataset3.Data:=LogionObj2.AS_getRecords('DataSetProvider2',-1,Irecout,Byte(options),Str,Params,OwnerData);
A:=Gettickcount();
Mts_timer4.Text:=inttostr(A-i);
Showmessage('ok');
BUtton21.Enabled:=true;
这是出问题的代码;
var LogionObj2:Imts_data;
a,i:Dword;
begin
if Mts_data2.Text='' then
begin
Showmessage('Input');
exit;
end;
button20.Enabled:=false;
a:= gettickcount();
LogionObj2:=CoMts_data.Createremote(Trim(Mts_edit1.text));
ClientDataset3.data:= LogionObj2.GetOneRecord(STrtoint(Mts_data2.Text));
I:=gettickcount();
Mts_timer3.Text:=inttostr(i-a);
Showmessage('ok');
button20.Enabled:=true;
这是不出问题的代码,
哥们试试看有问题咱们网上了,我得qq:76549704
 
多人接受答案了。
 
后退
顶部