⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 28-4.cfm.htm

📁 最全的ASP教程
💻 HTM
字号:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>用Visual Basic来创建服务器端组件</TITLE>
</HEAD>
<BODY>

<B><FONT FACE="宋体" LANG="ZH-CN" SIZE=5><P ALIGN="JUSTIFY">用Visual Basic来创建服务器端组件</P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">    Visual Basic是用来开发一个组件最容易和最快的途径,其缺点在于自由线程对象不能用VB来编写,这意味着在这个环境下不适合开发应用范围组件。VB4或VB5都适用,我们的例子使用VB5。</P>
<P ALIGN="JUSTIFY">    以下步骤是创建一个组件所必须的,它比用Java 少一些步骤,这是因为VB不用类库。</P>
<P ALIGN="JUSTIFY">   1.  编写源代码。</P>
<P ALIGN="JUSTIFY">   2.  创建项目。</P>
<P ALIGN="JUSTIFY">   3.  注册你的组件。</P>
<P ALIGN="JUSTIFY">   4.  在ASP页中引用组件。</P>
<P ALIGN="JUSTIFY"> </P>
</FONT><B><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="JUSTIFY">编写源代码</P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">启动一个新的VB5 ActiveX DLL项目,因为我们需要创建一个DLL,不存在用户界面。VB显示一个缺省的代码窗口名叫Class1,按F4并将属性表按下面设置:</P>
<P ALIGN="JUSTIFY">(Name)VBSoaringSites。</P>
<P ALIGN="JUSTIFY"> Instancing 5 </FONT><FONT SIZE=3>–</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3> MultiUse</P>
<P ALIGN="JUSTIFY">    如果你使用VB4,将Public设置成True,选择Project|Project 1 Properties将项目名改为<B>SoaringSites</B>并选中Unattended Execution 选项。最后单击对话框的Make表栏并选择Auto Increment,按OK键保存设置。</P>
<P ALIGN="JUSTIFY">    你可能添加一个ASP.DLL作为引用到你项目中去。选择Projects|References并选择Microsoft Activc Pages 1.0 Library,如图28.4所示。我们的VB组件不同于Java组件的一点在于我们不使用OnStartPage和 OnEndPage事件,所以我们可以跳过这个引用。它之所以保存作为例子的一部分是因为你会发现对于其他组件来说,它可能是有用的。</P>
<P ALIGN="JUSTIFY">   </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">   例表28.4中的代码同Java例子不一样,Java 例子是直接在客户端输出,而这个例子将返回一个字符串给ASP页,然后ASP页显示结果。</P>
<P ALIGN="JUSTIFY">在SoaringSites Code窗口中输入源代码,如表28.4所示。请注意Option  Explicit。</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">表28.4  VbSoaringSites 源代码</P>
<P ALIGN="JUSTIFY"><HR ALIGN="RIGHT" SIZE=1></P>
<P ALIGN="JUSTIFY">Option Explicit</P>
<P ALIGN="JUSTIFY">Public Function ListSoaringSites(sState As String) As String    Dim sOutput         As String</P>
<P ALIGN="JUSTIFY">    sOutput = "Requested State: " &amp; sState    sOutput = sOutput &amp; "&lt;P&gt;"</P>
<P ALIGN="JUSTIFY">    If UCase(sState) = "WA" Then        sOutput = sOutput _            &amp; "Arlington, WA&lt;BR&gt;" _            &amp; "Burlington, WA&lt;BR&gt;" _            &amp; "Pullman, WA&lt;BR&gt;" _            &amp; "Richland, WA&lt;BR&gt;" _            &amp; "Wenatchee, WA&lt;BR&gt;" _            &amp; "Yakima, WA&lt;BR&gt;"    ElseIf UCase(sState) = "WI" Then        sOutput = sOutput _            &amp; "&lt;BR&gt;West Bend, WI&lt;BR&gt;"    Else        sOutput = sOutput &amp; "No sites found for " &amp; sState    End If</P>
<P ALIGN="JUSTIFY">    ListSoaringSites = sOutput</P>
<P ALIGN="JUSTIFY"><HR ALIGN="LEFT" SIZE=1>End Function</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">在所有步骤都完成之后,你的工程项目看起来应象图28.5所示。注意你的项目和module名称,因为操作系统使用你输入的这些名称来注册组件。</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
</FONT><B><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="JUSTIFY">构建Dll(动态连接库) </P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">保存你的工作。本CD中的例子使用AspUnleashed\Chapter28\VbSoaringSites作为保存目录。</P>
<P ALIGN="JUSTIFY">选择File|Make VbSoaringSites DLL来创建DLL。这个组件将保存在同你保存源代码相同路径下。将此DLL拷贝到SSA站点的Components目录,使用Microsoft Management Console确保这个目录的属性包括Run in Separate Memory space使得你可以在以后安装不同版本的DLL时不需要重起你的计算机(详细情况请见第二章)。</P>
<P ALIGN="JUSTIFY">    在命令行中通过以下两条命令注册DLL。</P>
<P ALIGN="JUSTIFY">cd \ssa\Components</P>
<P ALIGN="JUSTIFY">RegSvr32 VbSoaringSites.dll</P>
<P ALIGN="JUSTIFY"> </P>
<B><P ALIGN="JUSTIFY">警告</P>
</B><P ALIGN="JUSTIFY">    如果这不是你首次注册这个VbSoaringSite DLL,在将新的版本的组件复制到Components目录前首先注销老的DLL,如果不这样做的结果将会导致注册表中加入多重注册信息,从而需要用乏味的RegEdit来清除其他错误的引用。</P>
<P ALIGN="JUSTIFY">    以下是注销旧的DLL的命令。</P>
<P ALIGN="JUSTIFY">cd \ssa\Components</P>
<P ALIGN="JUSTIFY">RegSvr32 /unregister VbSoaringSites.dll</P>
<P ALIGN="JUSTIFY"> </P>
</FONT><B><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="JUSTIFY">在页面中使用组件</P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">    列表28.5中所显示的代码与Java 组件代码的唯一区别在于它调用了另一个不同的ASP页。列表28.6中显示了更多的代码不同,我们在里面首先提取一个字符串,然后再使用它,因为VB的DLL并不直接向客户端作输出。</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">表28.5 VBSoaringSites.asp</P>
<P ALIGN="JUSTIFY"><HR ALIGN="RIGHT" SIZE=1></P>
<P ALIGN="JUSTIFY">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"&gt;&lt;HTML&gt;&lt;HEAD&gt;    &lt;TITLE&gt;Soaring Sites Results&lt;/TITLE&gt;&lt;/HEAD&gt;</P>
<P ALIGN="JUSTIFY">&lt;BODY BGCOLOR="#FFFFFF"&gt;&lt;FONT SIZE="2" FACE="Verdana, Arial, Helvetica"&gt;</P>
<P ALIGN="JUSTIFY">&lt;CENTER&gt;&lt;H1&gt;Soaring Sites&lt;/H1&gt;&lt;/CENTER&gt;&lt;HR Color="Red"&gt;</P>
<P ALIGN="JUSTIFY">&lt;FORM ACTION="VBSoaringSitesAction.asp"&gt;    Enter a state abbreviation to search for a site: &amp;nbsp;    &lt;INPUT NAME="State" SIZE="2"&gt;&lt;BR&gt;    &lt;INPUT TYPE="SUBMIT"&gt;&lt;/FORM&gt;</P>
<P ALIGN="JUSTIFY"><HR ALIGN="RIGHT" SIZE=1>&lt;/BODY&gt;&lt;/HTML&gt;</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">表28.6 VBSoaringSitesAction.asp</P>
<P ALIGN="JUSTIFY"><HR ALIGN="RIGHT" SIZE=1>&lt;% Option Explicit %&gt;</P>
<P ALIGN="JUSTIFY">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"&gt;&lt;HTML&gt;&lt;HEAD&gt;    &lt;TITLE&gt;Soaring Sites Results&lt;/TITLE&gt;&lt;/HEAD&gt;</P>
<P ALIGN="JUSTIFY">&lt;BODY BGCOLOR="#FFFFFF"&gt;&lt;FONT SIZE="2" FACE="Verdana, Arial, Helvetica"&gt;</P>
<P ALIGN="JUSTIFY">&lt;%</P>
<P ALIGN="JUSTIFY">Dim oSoaringSites</P>
<P ALIGN="JUSTIFY">Dim sSiteList</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">Set oSoaringSites=Server.CreateObject(</FONT><FONT SIZE=3>“</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>SoaringSites.vbSoaringSites</FONT><FONT SIZE=3>”</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY"> </P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">‘</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>Set the string to return value of function</P>
<P ALIGN="JUSTIFY">sSiteList=oSoaringSites.ListSoaringSites(Request(</FONT><FONT SIZE=3>“</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>State</FONT><FONT SIZE=3>”</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>))</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">Response.Write sSiteList      </FONT><FONT SIZE=3>‘</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>Display the result</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">Set oSoaringSites=Nothing     </FONT><FONT SIZE=3>‘</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>De-reference the object</P>
<P ALIGN="JUSTIFY">%&gt;</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"><HR ALIGN="LEFT" SIZE=1>&lt;/BODY&gt;&lt;/HTML&gt;</P></FONT></BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -