当前位置: 首页 > 图文教程 > 网络编程 > ASP > 为你的ASP程序制作一个编译组件(中)

ASP
[原创]asp下用实现模板加载的的几种方法总结
asp下利用fso实现文件夹或文件移动改名等操作函数
asp cint clng的范围与防止cint和clng的溢出解决方法大全
asp防范跨站点脚本攻击的的方法
独孤剑写的马克斯迅雷片库采集插件1.4 官方最新版提供下载了
根据日期得到生肖的ASP函数
不错的主要用于加密的vbs(asp)位移运算类
Script.VBS.Agent.ai juan.vbs专杀
循环取值Request.QueryString的用法
asp下实现字符串的补充fill()
无服务器做任意二级米子站
几种另类的ASP后门
asp事物功能简单小应用
ASP获取网页全部图片地址并保存为数组的正则
通过客户端验证上传图片文件大小的ASP源码
asp下计算分页的几种方法
谈动态多行多列,循环行和列,输出M行N列的ASP代码
asp在线执行sql语句的函数
asp正则html的图片,对图自动缩放大小
文件名 正则表达式提取方法

为你的ASP程序制作一个编译组件(中)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 208 ::
收藏到网摘: n/a

  下一步是将VBScript对象中的所有代码拷贝出来并粘贴到新工程向导所显示的类窗口中去.只要拷贝从"class DBConnection"到"end class"之间的代码.在粘贴完代码以后,在属性窗口中将类的名字改成DBConnection,如图C所示.


同时将MTSTransactionMode改成3(使用事务处理过程).我们没有必要为这个对象添加任何为支持事务处理(transaction)过程特别编写的代码,但我们最好应该申明你的对象将支持事务处理.现在,在你的硬盘上保存你的工程和类.我觉得使用这些名字将减少混淆,但是如果你的口味和我不同,你也可以更改这些文件的名字. 

因为这个对象使用ADODB,所以下一步是在工程中添加对那个库的引用.选择"工程"菜单并选择"引用...".随后显示的对话框将显示一个你的计算机上可用的库文件的列表,如图D所示.浏览这个列表然后选择Microsoft ActiveX Data Objects 2.5 Library 复选框.我的系统上装了SQL 2000,但是如果你没有2.5版本,你可以选择你的系统上最近的版本.这个组件没有使用任何刚发布的功能,所以大多数Active Data Objects的版本能够正常工作. 

图D

代码修改
到目前为止,我们已经成功的将DBConnection 类的代码转移到了Visual Basic里面.对大部分地方来说,这个代码是完整的.除了类的构造函数中对ASP Application对象的引用和Server.CreateObject那一行以外,这个代码就可以编译了.为了保证一个编译良好的对象,一点点代码上的修改是必要的. 

首先,在代码窗口的顶部添加"Option Explicit"这一行以便当变量在它们被申明以前就使用的时候系统产生一个错误警告.同样,将对mConnectionString的维数申明移到Option Explicit申明下面.然后,如图B所示那样将Class_Initialize()过程改变一下.这个代码只是简单的将连接字符串代码直接移动到了对象内部.这增加了一点点安全性,因为一个编译后的对象能够连到数据库而不会向开发者或未授权的用户暴露实际的连接字符串. 

Listing B
Private Sub Class_Initialize()
   mConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
      & "Data Source=c:\temp\Music Collection.mdb;"
End Sub

为了确保你的组件不会暴露连接字符串,可以将Public Property GetConnectionString()代码从类中去掉.这能让ConnectionString属性变得只读,这就使得用户能够使用这个类来访问其他的数据源,但是它又阻止了这个属性被读取出来,于是用户就无法看见连接字符串了. 

你还可以去掉Class_Terminate()过程,因为它并不包含任何代码.可以用一个查找替换过程,"Server.CreateObject"作为查找文本而"CreateObject"作为替换文本来替换掉它们.这使得所有对象的创建过程对Visual Basic兼容.到这个时候你应该保存工程然后,仅仅是出于测试的目的,从文件菜单中选择创建DBUtil.dll编译这个dll.这个组件应该能够编译成功,虽然不做进一步的修改它就不能正常运行. 

余下的修改工作数不胜数但是简单.因为Visual Basic的类型检查比VBScript更强,你应该对类中的所有函数和变量做出类型限定.这个工作不会要多长时间却能帮助生成一个更高效的代码.列表C展示了完成的类.