您的位置:首页精文荟萃软件资讯 → 在ASP中编写DLL的问题

在ASP中编写DLL的问题

时间:2004/10/7 19:07:00来源:本站整理作者:蓝点我要评论(0)


            
             
              
             
            

               
               

            



            ActiveX DLL 可以用来保护代码的一些部分,因为作为开发人员我们知道,用ASP进行工作时,源代码控制是一个艰难而琐碎的过程。ActiveX DLL 是经过编译的代码,没有工程文件中的源代码就不能对其进行修改。这就给开发人员带来许多可能:开发自动操作公共程序的程序并将它们作为共享软件来分发,分发至少有一些源代码保护的ASP应用程序,不断开发自己的ASP程序指令,以在一个全方位多功能的结果中提高ASP的性能。

   你所安装的第一个ActiveX DLL 文件将注册并安装Visual Basic 6 的运行时间文件,它允许运行经过编译的代码。但是要注意,这还要求重新启动服务器。当一个现存的DLL被安装并使用之后,如果想要对其进行升级, 服务器就将给出一个错误信息提示,说此文件正被另一个过程所使用。要纠正这一问题,也要重新启动服务器后才能完成DLL的升级。请记住在开发中要使用一个测试环境。

   虽然这个例子非常简单,用一个ASP包含文件就可以轻易地实现,但当开发 ActiveX DLL 时,你可以使用 Visual Basic 的全套基本指令、系统外壳指令以及所有控制台所能进行的操作,因此也就允许在线网站和内部互联网的全部自动控制。这样就把原来用ASP包含文件实现的 ActiveX DLL 的性能进行了拓展。

   在用组合框选择填充的数据库域中存储查询关键字的值,提高数据的完整性,轻易地在整个数据库中进行层叠式更新,这些都是很普通的操作。举例来说,现在有一个拼写错误的文本描述,可以在查循表中进行修改,所有选择了这个描述的相关条目都会自动地修改,因为我们已经存储了与这个描述相关的数字。组合框以查询表的内容为基础,这些内容将查询关键字的值与其描述联系起来,如果系统使用了许多查询的话,产生这些组合框的代码会变得非常重复。本文用 ActiveX DLL 来简化创建HTML组合框的程序,用一个数据库查询表中的内容进行填充。例子中的表名为lookup_table,它有以下域:

Lookup_Key: 存储在数据库中的值
Lookup_Field: 对查询元素进行分类
Lookup_Description: 显示在组合框中的描述
   要创建ActiveX DLL,步骤如下:

开始一个新的visual basic 工程文件;
选择ActiveX DLL 作为工程文件类型;
在Properties 窗口,命名类模块和工程文件。将工程文件命名为keiths_lookup ,将模块命名为lookup 。 ASP引用DLL函数时要使用这些名字。以后在ASP码中,将要引用一个名为keiths_lookup.lookup的服务器对象。
用同样的名字保存工程文件和模块,其中工程文件的扩展名为.vbp ,类模块的扩展名为.cls 。在本例中 工程文件的名字为keiths_lookup,模块的名字为lookup。
在工程菜单中,选择References 。这是你可以使用的其它应用程序对象。在本例中,检查Microsoft ActiveX data objects 2.0 库和Microsoft ActiveX Data Objects Recordset 2.0 库。
在包含查询表的IIS服务器数据库中创建一个名为Sumnet 的数据集。这个数据库没有用户名和口令。

   现在可以键入以下代码:


Public Function html_combo(comboname As String, Lookup_field As String) As String

Dim outstring As String
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sqlstring As String

Set conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")

Sqlstring = "SELECT [Lookup_Description],[Lookup_Key] FROM
[Lookup_Table] WHERE [Lookup_Field] = '" & Lookup_Field & "'"

conn.Open "DSN=Sumnet;UID=;PWD=.;"
rst.Open sqlstring, conn, 3, 3
If Not rst.EOF Then
rst.MoveFirst
outstring = "< Select name='" & comboname & "' >"
Do While Not rst.EOF
outstring = outstring & "< Option Value='" &
rst.Fields("lookup_key") & "' >" & _
rst.Fields("lookup_description") & "< /Option > "
rst.MoveNext
Loop
End If

outstring = outstring & "< /Select >"
html_combo = outstring
rst.Close
conn.Close

End Function

   然后,保存工程文件和类模块。

   编译工程文件的步骤如下:

启动Visual Studio 6.0 工具中的Package Deployment Wizard ;
选择刚才创建的ActiveX 工程文件;
点击Package;
选择打包脚本名或使用默认值;
选择Standard Setup ;
选择一个放置安装文件的文件夹;
选择单个cab;
点击Next使用其它默认选项;
在IIS服务器上运行setup。

   现在可以通过ASP代码使用DLL,因为在系统数据库中它已经被注册了。下面的ASP代码将使用所创建的LL内部的函数。它将产生三个组合框,一个用州来填充,一个用位置填充,另外一个用年龄组。第一个参数将成为网页上的对象名,第二个参数是用来填充组合框中查询域的值。


< %@ Language="VBSCRIPT" % >
< %
Set look = Server.CreateObject("keiths_lookup.lookup")
% >

< HTML >< BODY >

< %=look.html_combo("State","States")% >
< %=look.html_combo("Position","Positions")% >
< %=look.html_combo("Age_group","Age_Groups")% >

< /BODY >
< /HTML >

   这个例子非常简单。通过使用更多的参数,如表名、域名等,可以创建许多便携式的函数,这些函数可以用在你的工作中所遇到的各种各样的应用程序中。

   因为这些代码是在服务器一端水平上运行的,所以客户机不需要安装任何东西。这仅仅是用ActiveX DLL所能实现的功能的小小的例子。只需要一点点努力,就可以得到一个在网络用户中不同凡响的多功能应用程序。

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本