04. set MTStest = nothing
05. %>
程序说明
第01行: ASP起始标志。
第02行:定义MTStest对象。
第03行:调用MTStest对象的ShowMessage子程序。
第04行:结束MTStest对象的调用。
第05行:ASP结束标志。
(2)选择菜单中“文件”|“保存New HTML Page1”命令,将此HTML文件存盘。
(3)将“保存类型”设置为“ASP文件(*.asp)”,并且输入文件名“ex12-6.asp”。
打开浏览器,在地址栏中输入http://localhost/ex12-6.asp。
特别说明 上述文件的存储路径不论是在Windows 9X或是Windows NT/2000操作系统,PWS与IIS的默认Web路径皆为“C:\Inetpub\wwwroot”。
12-4-2 带有参数的ASP程序
当然,ASP对于对象的调用并非仅限于固定的数据类型,而且也可以使用参数。ActiveX DLL MTS组件具有Visual Basic的特性,同样也可以接受外部调用程序所传递进来的参数。该如何进行呢?笔者将分别修改范例“EX12-5”及“EX12-6”进行必要的解说。
以下是经过修改的范例“EX12-5”中“ShowMessage”子程序的内容:
范例程序:EX12-7
笔者使用范例“EX12-5”为基础,修改“ShowMessage”子程序,用来直接接受由ASP应用程序传递进来的参数,并且将结果显示在网页上。
(1)将ShowMessage子程序直接修改为可接受参数传递的子程序。
01 Public Sub ShowMessage(ByVal Values As String)
02 m_Response.Write Values & "<br>"
03 End Sub
程序说明
第01行:定义子程序名为“ShowMessage”,并且通过“Byval”定义Values变量的类型为字符串变量。
第02行:用已经定义的m_Responje对象的Write方法将变量Values的内容显示在网页上。
第03行:结束子程序的执行。
(2)将改变之后的EX12-5另存为EX12-7,同时修改并保存其对象类别模型Class1。
(3)将范例EX12-7的工程文件生成“EX12-7.dll”,并且复制到NT的“C:\WINNT\System32\Inetsrv”,或Windows 98的“C:\Windows\System\inetsrv”目录下。
(4)使用“regsvr32.exe”将“EX12-7.dll”加入MTS中。
范例程序:EX12-8
笔者以范例“EX12-6”为基础,经过修改调用“ShowMessage”子程序,同时将希望显示的信息一起传递给MTS组件。
(1)将EX12-6.asp程序中的MTStest.ShowMessage部分根据下列程序代码进行修改。
01. <%
02. Set MTStest = server.createobject("Project1.class1")
03. MTStest.ShowMessage(“具有参数传递功能的 ActiveX DLL 实验”)
04. set MTStest = nothing
05. %>
程序说明
第03行:在调用MTStest MTS组件中的ShowMessage子程序时,将参数一起传递过去。
(2)将修改后的“EX12-6.asp”另存为“EX12-8.asp”。
特别说明 在“EX12-8.asp”中,如果修改了ShowMessage的参数之后,在浏览器上单击“刷新”按钮更新网页,网页上显示的信息将随之更改。
对于上述与ASP交互使用的ActiveX DLL部分,其过程称之为“组件化ASP”,即用户可以利用ActiveX DLL所提供的功能达到希望的目的,最后再经过ASP的调用将结果显示在浏览器上。
在MTS多层的定义方面,上述ASP与ActiveX DLL在交互应用上最多也只有二层而已。原因是仅仅应用了ActiveX DLL接受ASP的调用,并且响应ASP。对于真正的多层MTS而言,可以根据使用者在网页上输入的信息,使用ActiveX DLL通过ADO OLEDB的ODBC方式,直接与后台不同的数据库管理系统连接。
就Microsoft Transaction Server或COM+的功能而言,绝非本书所能完全涵盖。读者如果对Microsoft Transaction Server或COM+感兴趣,不妨多参考一些相关资料或书籍。