如何解决MTS/COM+组件在WEB编程的应用!!!(50分)

  • 主题发起人 主题发起人 liaotw
  • 开始时间 开始时间
L

liaotw

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi 5 写了一些COM+组件,放在Win2000上,此机器也时我的Web服务器。我在COM+
组件中使用了*BSTR、*OleVariant等类型传回组件的结果,但是,我在InterDiv中,无法
得到结果!所有的语法都不出错。后来我又试了一个很简单的例子,还是一样,代码如下:
<%
set MyObject=Sever.CreateObject("ServerApp.DllDataServer")
MyObject.GetSystemName(vName)
MyObject.GetSystemTime(vTime)
%>
……
系统名称<B><% =vName %></B> &bnsp;系统时间:<B><% =vTime %></B>
其中“ServerApp.DllDataServer”是我用Delphi 5写的COM+,
vName是*Bstr类型
vTime是*OleVariant类型。
为什么没有显示呢?!!
主啊!救救我吧,不要告诉我用Delphi写的Com+无法在Web中使用吧
 
回传字符串的问题已经解决,但是,应该如何解决回传记录集 的问题能:
在Delphi 5 中的代码如下:
Function TMTSDataServer.GetRecord():TOleVariant;
begin
//dst是TAdoDataset对象
//sqlstr是保存Sql语句的字符串变量
dst.close;
dst.commandtext:=sqlstr;
dst.open;
Result:=dst.RecordSet;
end;

在InterDiv中:
<%
set MyObj=server.CreateObject("ServerApp.MTSDataServer")
set rst=Server.CreateObject("adodb.recordset")
MyObj.Sqlstr="select top 10 * from Materials"
rst=MyObj.GetRecord
s=""
'下面一句报错:好象rst不是Recordset对象一样!
do while not(rst.eof)
s=s & rst("描述")
rst.movenext
Loop
……
%>
 
我已经指导答案了!
 
给大家讲讲吧
 
给大家讲讲吧
 
多人接受答案了。
 
后退
顶部