亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

用VB生成DLL封裝ASP代碼,連接數據庫

2024-05-04 11:06:18
字體:
來源:轉載
供稿:網友
這篇文章以vb生成的dll封裝asp代碼來連接數據庫(以access數據庫為例)。

一般情況下我們在用asp連接access的數據庫時通常都會進行如下的操作

'//proconn.asp
<%
dim proconn
set proconn=server.createobject("adodb.connection")
proconn.open "driver={microsoft access driver (*.mdb)};uid=;pwd=123;dbq=" & server.mappath("db.asp")
'一個原本為db.mdb的access數據庫更改后綴為db.asp的文件,數據庫密碼123

if err.number <> 0 then
response.write "數據庫沒有連結,請檢查"
response.end
else
response.write "數據庫連結成功"
response.end
end if
%>

如果配置好服務器,訪問proconn.asp,如果連接數據庫成功會輸出“數據庫連結成功”。

但是這樣的asp代碼的安全級別非常低,如果此asp原代被人看到,那么再有此數據庫文件的話,其他人就能輕而易舉的
隨便打開你的數據庫進行操作。

所以我們的任務來了,如何將這些關鍵的內容封裝起來呢?

首先需要確定方式方法和對象。

查看了網上的一些資料,主要都是用vb生成dll的辦法來封裝的,那么我們也采取這樣的方法好了,(雖然我還沒用真正用過vb這東東)

方式方法確定,那么什么是我們需要封裝的對象呢?

大家來看
"driver={microsoft access driver (*.mdb)};uid=;pwd=123;dbq=" & server.mappath("db.asp")
是最關鍵的代碼,這段代碼封裝在一個用vb生成的dll中,應該比較好。
之所以不將整個
dim proconn
set proconn=server.createobject("adodb.connection")
proconn.open "driver={microsoft access driver (*.mdb)};uid=;pwd=123;dbq=" & server.mappath("db.asp")
都封裝,(因為網上有講將整個連接代碼都封裝)是因為,在其他asp文件引用proconn.asp時,
我還需要里面的proconn進行其他操作,如果封裝,不便進行引用和操作。
(以上封裝對象的解釋原因是我個人的見解,有朋友說整體封裝對proconn的使用沒有影響,這個我不理解,請知道的給我講講)


所在只想封裝最關鍵的部分“"driver={microsoft access driver (*.mdb)};uid=;pwd=123;dbq=" & server.mappath("db.asp")”

分析一下這段要封裝的內容,
它的前半部分就是一個字符串:
"driver={microsoft access driver (*.mdb)};uid=;pwd=123;dbq="
用&連接上后半部分的另一個字符串。
后半部分的另一個字符串是server.mappath對象函數的返回值。



下面開始這個封裝的操作過程。
首先
新建一個vb下的activex dll工程,工程的名稱project1更改成condbdll?? 方法class1的名稱更改成cs
工程名和方法名會在調用這個dll的時候使用到,大家可以按照自己命名規則定義,但請注意好好使用。
這個dll的代碼部分書寫如下:

dim rp as response
dim rq as request
dim ap as application
dim sr as server
dim sn as session

public sub onstartpage(myscriptingcontext as scriptingcontext)
set rp = myscriptingcontext.response
set rq = myscriptingcontext.request
set sr = myscriptingcontext.server
set ap = myscriptingcontext.application
set sn = myscriptingcontext.session
end sub

public sub onendpage()
set rp = nothing
set rq = nothing
set sr = nothing
set ap = nothing
set sn = nothing
end sub
'以上語句是必須的,將原本的對象作了簡化處理,并在兩個基本函數中作了處理

public function connectdb() as variant

connectdb = "driver={microsoft access driver (*.mdb)};uid=;pwd=123;dbq="

end function
'上面這個函數是處理前半部分字符串的,直接返回這個字符串的內容

'另外定義下面這個函數來處理后半部分內容
public function dbpath() as variant
dbpath = sr.mappath("db.asp")
end function
'注意上面使用的是sr,不要使用成server了

到了關鍵的一步,給這個工程添加"microsoft active server pages objectcontext object library" 的 reference
添加方法,選擇菜單中的"project"->"reference",在打開的對話框里選擇。
對了,還要選擇上"microsoft activex data objects 2.6 library"

進行完以上操作,我們就可以編譯生成dll了,(別忘了前面的改工程名和方法名)

準備好數據庫文件db.asp (由db.mdb更改后綴而成,密碼123)

下面就是調用封裝的連接數據庫的asp文件代碼:
'//proconn.asp
<%
dim proconn
set proconn=server.createobject("adodb.connection")
dim condb
set condb=server.createobject("condbdll.conn")
'condb就是創建的dll對象

dim strconn
'定義一個字符串
strconn = condb.connectdb() & condb.dbpath()
'連接兩部分內容組成字符串
proconn.open strconn
'執行數據庫對象操作
%>


由于是自己創建的dll,把它拷貝到相應的目錄后,必須注冊才能使用。
注冊的方法,在“運行”中執行:
regsvr32.exe lyfupload.dll

取消這個dll的注冊的方法是:regsvr32.exe /u lyfupload.dll

注冊完畢,我們的工作基本上就做完了,現在我們可以使用這樣的封裝方法連接具有針對性的數據庫了。

不過有一點需要特別注意的是:
由于
dim condb
set condb=server.createobject("condbdll.conn")
'condb就是創建的dll對象
這是在asp中創建的對象,包括proconn,那么我們在任何使用到(引用)proconn.asp的其他asp文件中記得釋放這兩個對象!
proconn.close
set proconn=nothing
set condb=nothing
否則系統會由于對象沒有釋放,而變得越來越不堪重負。

關于這個封裝asp代碼連接access數據庫的方法,我想完全適用其他數據庫的連接方法。

我想我的這個方法并不是最好的,有任何不足之處,請看過的人給我指正,在此先行謝過。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲毛片在线看| 中文字幕在线看视频国产欧美| 久久99精品国产99久久6尤物| 欧美日韩亚洲一区二区三区| 中文字幕不卡在线视频极品| 岛国av在线不卡| 久久久国产成人精品| 亚洲第一区在线观看| 亚洲xxx视频| 国产91亚洲精品| 91免费精品国偷自产在线| 国产精品白丝jk喷水视频一区| 91九色单男在线观看| 美女av一区二区三区| 黑人巨大精品欧美一区二区三区| 精品国产乱码久久久久酒店| 欧美成人午夜剧场免费观看| x99av成人免费| 欧美性猛交xxxx黑人| 欧美大尺度在线观看| 97视频在线看| 在线观看久久av| 日韩欧美中文字幕在线观看| 久久久久久久久久久网站| 国产自摸综合网| 国产91色在线|| 国产亚洲精品美女| 国产精品福利在线观看网址| 欧美一级淫片丝袜脚交| 欧美亚洲第一页| 91在线高清免费观看| 国产精品久久久久久久久久久不卡| 国产成人黄色av| 国产精品18久久久久久首页狼| 亚洲第一黄色网| 亚洲精品xxx| 国产欧美久久一区二区| 欧美性猛交xxxx富婆| 久久久精品999| 久久久久久久久久亚洲| 成人激情春色网| 国产一区二区三区在线播放免费观看| 欧美日韩美女在线| 日韩视频免费大全中文字幕| 性色av一区二区三区红粉影视| 91亚洲精品一区二区| 国内外成人免费激情在线视频网站| 欧美日韩视频免费播放| 欧美精品日韩www.p站| 欧美乱妇40p| 欧美黄色免费网站| 日韩视频第一页| 3344国产精品免费看| 自拍偷拍亚洲一区| 另类专区欧美制服同性| 国产日韩精品在线观看| 久久亚洲国产精品成人av秋霞| 久久久久久久91| 欧美理论电影在线观看| 亚洲精品一区二三区不卡| 亚洲自拍偷拍在线| 在线视频日韩精品| 久久久久成人网| 久久人人爽人人爽人人片亚洲| 精品久久久在线观看| 欧美日韩在线免费| 97精品在线视频| 亚洲乱码国产乱码精品精天堂| 日韩精品免费电影| 日韩精品久久久久久福利| 成人美女av在线直播| 欧美与黑人午夜性猛交久久久| 亚洲精品狠狠操| 91亚洲精品一区二区| 亚洲天堂网在线观看| 日韩在线视频免费观看| 成人午夜小视频| 国产精品偷伦视频免费观看国产| 亚洲国产精品嫩草影院久久| 欧美小视频在线观看| 久久精品国产一区二区电影| 欧美日韩亚洲视频一区| 精品国产91乱高清在线观看| 国产亚洲xxx| 国产一区二区三区精品久久久| 国产在线视频2019最新视频| 高清一区二区三区四区五区| 欧美亚洲成人免费| 欧美日韩亚洲高清| 奇米一区二区三区四区久久| 欧美做爰性生交视频| 欧美激情一区二区三区成人| 亚洲一区二区免费| 国产日韩欧美在线| 色樱桃影院亚洲精品影院| 久久伊人91精品综合网站| 久久精品成人欧美大片古装| 欧美日韩国产精品一区| 永久免费毛片在线播放不卡| 精品视频在线播放免| 日韩美女中文字幕| 国产精品久久久精品| 久久久久久久亚洲精品| 在线观看视频亚洲| 久久国产天堂福利天堂| 久久久久久亚洲精品不卡| 欧美日韩美女在线观看| 国外成人在线播放| 国产一区二区丝袜高跟鞋图片| 亚洲第一精品电影| 亚洲午夜女主播在线直播| 欧美日韩午夜视频在线观看| 亚洲最新av网址| 正在播放欧美一区| 日韩欧美高清视频| 久久久久久久久久久亚洲| 日韩久久精品成人| 国产精品扒开腿做| 亚洲毛片在线观看.| 亚洲最大福利视频网站| 久久久久久久久久国产| 日韩中文第一页| 欧美成人性生活| 国产欧美精品一区二区三区-老狼| 日韩av免费在线观看| 色妞色视频一区二区三区四区| 国产精品第七影院| 久久九九全国免费精品观看| 久久久久久久影院| 超碰97人人做人人爱少妇| 国产精品自在线| 国产91精品青草社区| 自拍偷拍亚洲一区| 亚洲a在线观看| 亚洲激情成人网| 久久久久久久久久久成人| 亚洲大胆人体视频| 久久精品成人欧美大片古装| 欧美裸体xxxx极品少妇软件| 日韩在线免费观看视频| 国产午夜精品一区理论片飘花| 日韩av中文在线| 黄网动漫久久久| 久久激情视频免费观看| 国产精品视频免费观看www| 国产精品无av码在线观看| 亚洲国产成人精品久久| 亚洲影视中文字幕| 2018国产精品视频| 日韩精品极品视频免费观看| 伊人精品在线观看| 亚洲曰本av电影| 国产成+人+综合+亚洲欧洲| 色综合伊人色综合网站| 国产美女扒开尿口久久久| 欧美激情区在线播放| 在线观看欧美成人| 欧美一二三视频| 国产精品一区久久久| 一本色道久久88亚洲综合88| 91精品视频在线| 国产精品亚洲精品| 国产精品久久久久久久久粉嫩av| 国产丝袜一区二区三区|