设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 |
当前位置:首页 >> ASP技术 >> ASP应用 >> 正文
最新信息
·asp无限级分类加js收缩伸展…
·ASP读取EXCEL数据
·ASP编程操作Excel
·ASP编写了一个EXCEL上传程…
·ASP如何读取EXCEL工作表名…
·ASPJpeg和ASPUpload组件的…
·用ASP和SQL语句动态的创建…
·asp生成excel报表
·四大 FCKeditor 实战应用技…
·FCKeditor 2.0 的设置.修改…
资料搜索
热点信息
·asp生成excel报表
·Javascript+ASP制作树形菜…
·AspUpload组件的UploadedF…
·ASPJpeg和ASPUpload组件的…
·FckEditor中文配置手册详细…
·ASPUpload组件介绍
·金光ASP柱形图程序
·asp生成不重复的随机数字
·ASP读取EXCEL数据
·0-29内取15个不同的随机数…
推荐信息
·用ASP生成二维饼图
·一个取图片尺寸的类,支持…
·随即文件名
·ASP 随机图片
·本地图片,音乐等ASP防盗代…
·ASPJpeg和ASPUpload组件的…
·如何实现网上考试?
·用ASP打开远端MDB文件的方…
·ASP编写完整的一个IP所在地…
·用ASP实现远程批量文件改名


Google
 
用VB编写组件—封装数据库的连接字符串
〖编辑:Cloudy | 浏览:人次〗

如今,开发WEB应用程序绝大多数都是使用Browser/Server模式,而在B/S 应用程序开发领域中,微软公司的IIS/ASP组合以其强大的功能、良好的扩展能力及与其它微软产品良好的兼容性,迅速地流行起来。ASP以其简单易学、功能强大而博得广大程序员的喜爱,国内的大部分网站都是利用ASP架构的。当我们使用ADO访问数据库时,有时是把连接字符串显式的写在.ASP文件中,这样做显然不太安全,很容易被别有用心的人获取密码、数据库名等信息。为了数据的安全,我们可以自己编写组件来封装访问数据库的字符串,然后再在global.asa文件或.asp也面上调用即可。

一、下面我们就来一步一步的创建组件:

启动vb6.0新建-->ActiveX dll工程。单击"工程"-->引用,选择"microsoft active server pages object library"和"microsoft activeX data objects 2.1 library"两项。将类模块的名称改为WenConnection.将工程的名称改为WenADODB.保存工程文件WenADODB.vbp和类文件WenConnection.cls。具体做法:1)选择“工程”—>“引用”进入引用用户选择界面如图1所示,在“可用的引用”复选框选择"microsoft active server pages object library"和"microsoft activeX data objects 2.1 library"两项。


图1

2)选择“工程”—>“工程属性”进入工程属性设置界面,选“通用”页,在“工程类型”的下拉框中选择“ActiveX DLL”,在工程名输入框中输入工程名为“WenADODB”,如图2所示。


图2

3)再选择“编译”页,选中“代码大小优化”一项,如图3所示。


图3

至此,我们对新建的工程的属性、引用等基本设置完成。

二、接下来我们就在类WenConnection.cls中写入代码:

1)首先要申明变量:

Private WenScriptingContext As ScriptingContext

Private WenApplication As Application

Private WenRequest As Request

Private WenResponse As Response

Private WenServer As Server

Private WenSession As Session

2)为了在WenConnection类中使用ASP的内建对象,必须在此类中写一个OnStartPage子函数。那是因为无论什么时候用户访问一个带有本组件的ASP文件,IIS就会把ScriptingContext传送给我们的对象请我们使用。这个ScriptingContext包括了全部的ASP方法和属性,这使得我们有能力访问所有ASP的对象。

Public Sub OnStartPage (PassedScriptingContext As ScriptingContext)

Set WenScriptingContext = PassedScriptingContext

Set WenApplication = WenScriptingContext.Application

Set WenRequest = WenScriptingContext.Request

Set WenResponse = WenScriptingContext.Response

Set WenServer = WenScriptingContext.Server

Set WenSession = WenScriptingContext.Session

End Sub

我们既然用OnStartPage函数来创建对象,那么我们这里就用OnEndPage子函数来释放对象:

Public Sub OnEndPage()

Set WenScriptingContext = Nothing

Set WenApplication = Nothing

Set WenRequest = Nothing

Set WenResponse = Nothing

Set WenServer = Nothing

Set WenSession = Nothing

End Sub

接下来定义两个函数RsResult()和DataSource():

Public Function Rs(strsql As String) As Recordset

Dim oConn As Connection

Dim oRs As Recordset

Dim strconnstring As String

strconnstring = "driver={sql server};server=ServerName;uid=sa;pwd=;" & _

"database=DataBaseName"

oConn.Open strconnstring

oRs.ActiveConnection = oConn

strsql="Select * From tableName"

oRs.Open strsql, oConn, 1, 3

Set Rs = oRs

End Function

 

Public Function DataSourceConnection() As Variant

DataSourceConnection = "driver={sql server};server=ServerName;uid=sa;pwd=;database=DataBaseName"

End Function

三、 存工程名为WenADODB.vbp和保存类名为WenConnection.cls,然后点击“文件”—>“生成WenADODB.DLL”编译成动态连接库文件。VB在编译好动态连接库文件的同时也将该组件注册到注册表里了,要是想在另外一台机器上注册该组件的话,请用以下指令注册或反注册:

Regsvr32 x:\路径\WenADODB.dll x:\路径\为WenADODB.dll文件存放的盘符和路径

Regsvr32 /u x:\路径\WenADODB.dll 参数U为反注册

四、 在ASP文件中调用WenADODB.dll组件的例子。

<%

Set Conn=Server.CreateObject("WenADODB.WenConnection") ‘调用组件创建对象实例

objConn=Conn.DataSourceConnection()

application("strconn")=objConn

 

set Rs=Server.CreateObject("ADODB.Recordset")

sql="select * from TableName order by ID DESC"

Rs.open sql,application("strconn"),1,3

%>

<Table align="center" border="1">

<%

if Rs.Bof and Rs.Eof then

Response.Write "暂时还没有任何数据。"

else

Do while not Rs.Eof

%>

<tr width=100%>

<td width=50%><%=Rs("Field1")%></td><td width=50%><%=Rs("Field2")%></td>

</tr>

<%

Rs.MoveNext

Loop

end if

Rs.Close;Set Rs=Nothing

%>

</Table>

五、 小结

我们这里只是编写了一个连接数据库的简单的动态连接库文件,利用VB的强大组件编写功能还可以写出功能更加强大跟齐全的组件,来完成更加实用的任务。


录入时间:2007-02-26 13:13:23 [打印本页] [关闭窗口] [返回顶部]
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

Copyright © 2006-2014 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号