仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 409|回复: 9
打印 上一主题 下一主题

[学习教程] ASP网页编程之用VB天生DLL封装ASP代码,毗连数据库

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;
山那边是海 该用户已被删除
沙发
发表于 2015-1-20 07:42:49 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
乐观 该用户已被删除
板凳
发表于 2015-1-24 16:59:59 | 只看该作者
掌握asp的特性而且一定要知道为什么。
谁可相欹 该用户已被删除
地板
发表于 2015-1-25 15:28:35 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
若天明 该用户已被删除
5#
发表于 2015-2-2 22:36:10 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
蒙在股里 该用户已被删除
6#
发表于 2015-2-8 17:55:15 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
分手快乐 该用户已被删除
7#
发表于 2015-2-25 22:02:29 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-8 07:29:36 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
简单生活 该用户已被删除
9#
发表于 2015-3-15 21:07:52 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
灵魂腐蚀 该用户已被删除
10#
发表于 2015-3-22 04:15:53 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:20

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表