首页 > 开发 > 综合 > 正文

用VB编写组件—封装数据库的连接字符串

2024-07-21 02:15:42
字体:
来源:转载
供稿:网友
如今,开发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的强大组件编写功能还可以写出功能更加强大跟齐全的组件,来完成更加实用的任务。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表