|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。封装|毗连数据库这篇文章以VB天生的DLL封装ASP代码来毗连数据库(以Access数据库为例)。
一样平常情形下我们在用ASP毗连Access的数据库时一般城市举行以下的操纵
//Proconn.asp
<%
dimProConn
setProConn=Server.CreateObject("ADODB.CONNECTION")
ProConn.Open"driver={MicrosoftAccessDriver(*.mdb)};uid=;pwd=123;DBQ="&Server.MapPath("DB.asp")
一个底本为DB.mdb的Access数据库变动后缀为DB.asp的文件,数据库暗码123
iferr.Number0then
ResPonse.Write"数据库没有保持,请反省"
ResPonse.End
else
ResPonse.Write"数据库保持乐成"
ResPonse.End
endif
%>
假如设置好服务器,会见Proconn.asp,假如毗连数据库乐成会输入“数据库保持乐成”。
可是如许的asp代码的平安级别十分低,假如此asp原代被人看到,那末再有此数据库文件的话,其别人就可以十拿九稳的
任意翻开你的数据库举行操纵。
以是我们的义务来了,怎样将这些关头的内容封装起来呢?
起首必要断定体例办法和工具。
检察了网上的一些材料,次要都是用VB天生DLL的举措来封装的,那末我们也接纳如许的办法好了,(固然我还没用真正用过VB这东东)
体例办法断定,那末甚么是我们必要封装的工具呢?
人人来看
"driver={MicrosoftAccessDriver(*.mdb)};uid=;pwd=123;DBQ="&Server.MapPath("DB.asp")
是最关头的代码,这段代码封装在一个用VB天生的DLL中,应当对照好。
之以是不将全部
dimProConn
setProConn=Server.CreateObject("ADODB.CONNECTION")
ProConn.Open"driver={MicrosoftAccessDriver(*.mdb)};uid=;pwd=123;DBQ="&Server.MapPath("DB.asp")
都封装,(由于网上有讲将全部毗连代码都封装)是由于,在其他asp文件援用Proconn.asp时,
我还必要内里的ProConn举行其他操纵,假如封装,方便举行援用和操纵。
(以上封装工具的注释缘故原由是我团体的看法,有伴侣说全体封装对ProConn的利用没有影响,这个我不睬解,请晓得的给我讲讲)
地点只想封装最关头的部分“"driver={MicrosoftAccessDriver(*.mdb)};uid=;pwd=123;DBQ="&Server.MapPath("DB.asp")”
剖析一下这段要封装的内容,
它的前半部分就是一个字符串:
"driver={MicrosoftAccessDriver(*.mdb)};uid=;pwd=123;DBQ="
用&毗连上后半部分的另外一个字符串。
后半部分的另外一个字符串是Server.MapPath工具函数的前往值。
上面入手下手这个封装的操纵历程。
起首
新建一个VB下的ActiveXDLL工程,工程的称号Project1变动成ConDBDLL??办法class1的称号变动成cs
工程名和办法名会在挪用这个DLL的时分利用到,人人能够依照本人定名划定规矩界说,但请注重好好利用。
这个DLL的代码部分誊写以下:
DimrpAsResponse
DimrqAsRequest
DimapAsApplication
DimsrAsServer
DimsnAsSession
PublicSubOnStartPage(MyScriptingContextAsScriptingContext)
Setrp=MyScriptingContext.Response
Setrq=MyScriptingContext.Request
Setsr=MyScriptingContext.Server
Setap=MyScriptingContext.Application
Setsn=MyScriptingContext.Session
EndSub
PublicSubOnEndPage()
Setrp=Nothing
Setrq=Nothing
Setsr=Nothing
Setap=Nothing
Setsn=Nothing
EndSub
以上语句是必需的,将底本的工具作了简化处置,并在两个基础函数中作了处置
PublicFunctionConnectDB()AsVariant
ConnectDB="driver={MicrosoftAccessDriver(*.mdb)};uid=;pwd=123;DBQ="
EndFunction
下面这个函数是处置前半部分字符串的,间接前往这个字符串的内容
别的界说上面这个函数来处置后半部份内容
PublicFunctionDBPath()AsVariant
DBPath=sr.MapPath("DB.asp")
EndFunction
注重下面利用的是sr,不要利用成Server了
到了关头的一步,给这个工程增加"MicrosoftActiveServerPagesObjectContextObjectLibrary"的Reference
增加办法,选择菜单中的"Project"->"Reference",在翻开的对话框里选择。
对了,还要选择上"microsoftactiveXdataobjects2.6library"
举行完以上操纵,我们就能够编译天生DLL了,(别忘了后面的改工程名和办法名)
筹办好数据库文件DB.asp(由DB.mdb变动后缀而成,暗码123)
上面就是挪用封装的毗连数据库的asp文件代码:
//ProConn.asp
<%
dimProConn
setProConn=Server.CreateObject("ADODB.CONNECTION")
DimConDB
setConDB=Server.CreateObject("ConDBDLL.Conn")
ConDB就是创立的DLL工具
DimStrConn
界说一个字符串
StrConn=ConDB.ConnectDB()&ConDB.DBPath()
毗连两部份内容构成字符串
ProConn.OpenStrConn
实行数据库工具操纵
%>
因为是本人创立的DLL,把它拷贝到响应的目次后,必需注册才干利用。
注册的办法,在“运转”中实行:
Regsvr32.exelyfUpload.dll
作废这个DLL的注册的办法是:Regsvr32.exe/ulyfUpload.dll
注册终了,我们的事情基础上就做完了,如今我们可使用如许的封装办法毗连具有针对性的数据库了。
不外有一点必要出格注重的是:
因为
DimConDB
setConDB=Server.CreateObject("ConDBDLL.Conn")
ConDB就是创立的DLL工具
这是在ASP中创立的工具,包含ProConn,那末我们在任何利用到(援用)ProConn.asp的其他ASP文件中记得开释这两个工具!
ProConn.close
setProConn=nothing
setConDB=Nothing
不然体系会因为工具没有开释,而变得愈来愈不胜重负。
关于这个封装ASP代码毗连Access数据库的办法,我想完整合用其他数据库的毗连办法。
我想我的这个办法并非最好的,有任何不敷的地方,请看过的人给我斧正,在此先行谢过。
</p>无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的; |
|