EasyASP v1.5發(fā)布(包含數(shù)據(jù)庫(kù)操作類,原clsDbCtrl.asp)第1/2頁(yè)
更新時(shí)間:2008年10月24日 00:30:57 作者:
EasyASP是一個(gè)方便快速開(kāi)發(fā)ASP的類,其中包含了一個(gè)數(shù)據(jù)庫(kù)控制類(原clsDbCtrl.asp,對(duì)原代碼作了優(yōu)化和修改,包含對(duì)數(shù)據(jù)庫(kù)的各類操作及存儲(chǔ)過(guò)程的調(diào)用,全部封裝在Easp.db中,使用起來(lái)會(huì)更方便,調(diào)用也更簡(jiǎn)單)。
而Easp類中提供了大量實(shí)用的ASP通用過(guò)程及方法,可以簡(jiǎn)化大部分的ASP操作。目前只提供了VBScript版,JScript版將來(lái)可能會(huì)提供。
EasyASP v1.5 (2008-10-22更新)
新增功能:
1、將數(shù)據(jù)庫(kù)控制類(原clsDbCtrl.asp)封裝入Easp類,均通過(guò)Easp.db調(diào)用,也可獨(dú)立使用。
2、新增MSSQL存儲(chǔ)過(guò)程調(diào)用方法,可靈活調(diào)用存儲(chǔ)過(guò)程并返回返回值、記錄集及出參。
3、新增db.CreatConn方法,可以根據(jù)自定義的連接字符串連接數(shù)據(jù)庫(kù)。
4、新增db.Json方法,可以將數(shù)據(jù)庫(kù)記錄集按Json格式輸出。
5、新增db.Rand和db.RandStr方法,可以生成一個(gè)不重復(fù)的隨機(jī)數(shù)或者隨機(jī)字符串
6、新增數(shù)據(jù)庫(kù)操作各方法的簡(jiǎn)寫(xiě)方法,更節(jié)約書(shū)寫(xiě)代碼時(shí)間。
7、在Easp類中新增大量的實(shí)用方法,如安全獲取值、防Sql注入、服務(wù)器端表單驗(yàn)證等。
其它更新:
1、優(yōu)化db.AutoId自動(dòng)獲取編號(hào),效率提高20倍以上,數(shù)據(jù)量越大越明顯。
2、修改db.OpenConn數(shù)據(jù)庫(kù)連接方法,更符合日常描述習(xí)慣。
3、修改db.GetRecord取記錄集方法,參數(shù)更少。修正條件使用數(shù)組報(bào)錯(cuò)的Bug。
4、修改并優(yōu)化db.DeleteRecord刪除記錄方法,目前只有兩個(gè)參數(shù)了。
5、修改了錯(cuò)誤調(diào)試方法,增加Debug全局屬性控制錯(cuò)誤顯示。
更新說(shuō)明:
以前寫(xiě)了一個(gè)clsDbCtrl.asp數(shù)據(jù)庫(kù)控制類,收到一些反饋,還有朋友發(fā)來(lái)郵件告訴我一些改進(jìn)的方法,很感謝他們。而我在原帖的跟帖中看到一條留言說(shuō)“有記參數(shù)的時(shí)間,SQL語(yǔ)句早都寫(xiě)完了”,更是直接指出了其中的尷尬,的確,盡管VBS沒(méi)有arguments屬性,但用太多的參數(shù)也不是個(gè)好主意。所以我花了些時(shí)間把這個(gè)類的許多代碼都重寫(xiě)了一下,在保證功能只能更強(qiáng)不能更弱的前提下,一個(gè)方法最多只有3個(gè)參數(shù)了。另外新增加了一個(gè)調(diào)用MSSQL存儲(chǔ)過(guò)程的方法,可以靈活的調(diào)用存儲(chǔ)過(guò)程并根據(jù)需要返回一個(gè)或多個(gè)記錄集、輸出參數(shù)及返回值,當(dāng)然,吸取教訓(xùn)了,這個(gè)方法只有兩個(gè)參數(shù)。現(xiàn)在都封裝在這個(gè)新的名叫EasyASP的家伙中了,顧名思義,無(wú)非是想一切都簡(jiǎn)單點(diǎn)。
另外還有一個(gè)更尷尬的,那就是VBScript并不是面向?qū)ο蟮恼Z(yǔ)言,所以這個(gè)類其實(shí)說(shuō)穿了也只是一些過(guò)程和方法的封裝,方便使用而已,所以其中大部分的方法和過(guò)程都可以提出來(lái)單獨(dú)使用。當(dāng)然,如果有需要,也可以把它封裝成wsc或者dll組件使用。
=================================================================
使用說(shuō)明
=================================================================
1、使用方法:
(1) Easp類的所有調(diào)用都已包含在easp.asp中,所以只需要在頁(yè)首引入該文件,如:
<!--#include file="inc/easp/easp.asp" -->
或:
<!--#include virtual="/inc/easp/easp.asp"-->
(2) 該類已經(jīng)實(shí)例化,無(wú)需再單獨(dú)實(shí)例化,直接使用Easp.前綴調(diào)用即可,如:
Easp.wn("Test String") 或 Easp.db.AutoId("Table:ID")
(3) 如要同時(shí)操作多個(gè)數(shù)據(jù)庫(kù),請(qǐng)實(shí)例化新的easpdb對(duì)象,如:
Dim db2 : Set db2 = New EasyASP_db
db2.dbConn = db2.OpenConn(0,dbase,server)
2、參數(shù)約定:
(1) 數(shù)組參數(shù):由于VBScript沒(méi)有arguments屬性,不能使用動(dòng)態(tài)參數(shù),所以,在本類涉及到數(shù)據(jù)庫(kù)數(shù)據(jù)的代碼中,使用了Array(數(shù)組)來(lái)達(dá)到這一效果。本類中的部分參數(shù)可以使用數(shù)組(參數(shù)說(shuō)明中有注明),但使用數(shù)組時(shí)應(yīng)參照以下格式:
Array("Field1:Value1", "Field2:True", "Field3:100")
對(duì),有點(diǎn)像json的格式,如果涉及到變量,那就這樣:
Array("Field1:" & Value1, "Field2:" & Value2, "Field3:" & Value3)
可以這樣說(shuō),本類中的幾乎所有與數(shù)據(jù)庫(kù)字段相關(guān)的內(nèi)容都可以用以上的數(shù)組格式來(lái)設(shè)置條件或者是獲取內(nèi)容,包括調(diào)用存儲(chǔ)過(guò)程要傳遞的參數(shù)。而這個(gè)類里最大的優(yōu)點(diǎn)就是在使用時(shí)不用去考慮字段的類型,在字段后跟一個(gè)冒號(hào),接著跟上相應(yīng)的值就行了。如果你經(jīng)常手寫(xiě)ASP程序的話,你很快就會(huì)感受到運(yùn)用這種方式的魅力,除了數(shù)據(jù)類型不用考慮之外,它也很方便隨時(shí)添加和刪除條件。這里舉個(gè)例子說(shuō)明這個(gè)用法:
比如添加新記錄的方法:
Easp.db.AddRecord "Table", Array("FieldsA:測(cè)試數(shù)據(jù)","FieldsB:"&Now(),"FieldsC:True")
參數(shù)只有兩個(gè),一個(gè)是表名,另一個(gè)就是這樣的數(shù)組參數(shù)。如果要改變數(shù)據(jù)庫(kù)結(jié)構(gòu),則修改上面的程序代碼就非常簡(jiǎn)單了。
(2) 共用參數(shù)(用特殊符號(hào)分隔): 也是考慮到要盡量減少參數(shù),如果有些參數(shù)在很多時(shí)候都可以沒(méi)有的話,那就沒(méi)有必要專門(mén)為它增加一個(gè)參數(shù)。在本類里采用了特殊符號(hào)如冒號(hào)(:)分隔一個(gè)參數(shù)中的多個(gè)值來(lái)達(dá)到傳遞多個(gè)參數(shù)的效果。舉幾個(gè)例子說(shuō)明一下,同時(shí)也可以預(yù)覽一下采用本類的一些優(yōu)勢(shì):
比如建立MSSQL數(shù)據(jù)庫(kù)連接對(duì)象的方法:
Set Conn = Easp.db.Open(0,"Database","User:Password@ServerAddress")
很一目了然對(duì)不對(duì),這里就用:和@分隔了幾個(gè)參數(shù)而放在同一個(gè)參數(shù)里了。另外如果是Access數(shù)據(jù)庫(kù)有密碼則在第3個(gè)參數(shù)中輸入就行了,沒(méi)有其它參數(shù)了。
再比如獲取記錄集的方法:
Set rs = Easp.db.GetRecord("Table:FieldsA,FieldsB,FieldsC:20","ID > 10","ID Desc")
其中第1個(gè)參數(shù)中包含了表名,要取的字段和要取的記錄數(shù),因?yàn)樽侄魏陀涗洈?shù)很多時(shí)候是可以省略的,所以俺索性把參數(shù)也省略了,這樣要記的參數(shù)要少很多滴。
再比如本類里有一個(gè)GetUrl()的獲取本頁(yè)面地址的方法,很多地方都見(jiàn)過(guò)是吧,但是本類里這個(gè)方法帶一個(gè)參數(shù),通過(guò)這個(gè)參數(shù)可以取得很多結(jié)果,看例子:
EasyASP v1.5 (2008-10-22更新)
新增功能:
1、將數(shù)據(jù)庫(kù)控制類(原clsDbCtrl.asp)封裝入Easp類,均通過(guò)Easp.db調(diào)用,也可獨(dú)立使用。
2、新增MSSQL存儲(chǔ)過(guò)程調(diào)用方法,可靈活調(diào)用存儲(chǔ)過(guò)程并返回返回值、記錄集及出參。
3、新增db.CreatConn方法,可以根據(jù)自定義的連接字符串連接數(shù)據(jù)庫(kù)。
4、新增db.Json方法,可以將數(shù)據(jù)庫(kù)記錄集按Json格式輸出。
5、新增db.Rand和db.RandStr方法,可以生成一個(gè)不重復(fù)的隨機(jī)數(shù)或者隨機(jī)字符串
6、新增數(shù)據(jù)庫(kù)操作各方法的簡(jiǎn)寫(xiě)方法,更節(jié)約書(shū)寫(xiě)代碼時(shí)間。
7、在Easp類中新增大量的實(shí)用方法,如安全獲取值、防Sql注入、服務(wù)器端表單驗(yàn)證等。
其它更新:
1、優(yōu)化db.AutoId自動(dòng)獲取編號(hào),效率提高20倍以上,數(shù)據(jù)量越大越明顯。
2、修改db.OpenConn數(shù)據(jù)庫(kù)連接方法,更符合日常描述習(xí)慣。
3、修改db.GetRecord取記錄集方法,參數(shù)更少。修正條件使用數(shù)組報(bào)錯(cuò)的Bug。
4、修改并優(yōu)化db.DeleteRecord刪除記錄方法,目前只有兩個(gè)參數(shù)了。
5、修改了錯(cuò)誤調(diào)試方法,增加Debug全局屬性控制錯(cuò)誤顯示。
更新說(shuō)明:
以前寫(xiě)了一個(gè)clsDbCtrl.asp數(shù)據(jù)庫(kù)控制類,收到一些反饋,還有朋友發(fā)來(lái)郵件告訴我一些改進(jìn)的方法,很感謝他們。而我在原帖的跟帖中看到一條留言說(shuō)“有記參數(shù)的時(shí)間,SQL語(yǔ)句早都寫(xiě)完了”,更是直接指出了其中的尷尬,的確,盡管VBS沒(méi)有arguments屬性,但用太多的參數(shù)也不是個(gè)好主意。所以我花了些時(shí)間把這個(gè)類的許多代碼都重寫(xiě)了一下,在保證功能只能更強(qiáng)不能更弱的前提下,一個(gè)方法最多只有3個(gè)參數(shù)了。另外新增加了一個(gè)調(diào)用MSSQL存儲(chǔ)過(guò)程的方法,可以靈活的調(diào)用存儲(chǔ)過(guò)程并根據(jù)需要返回一個(gè)或多個(gè)記錄集、輸出參數(shù)及返回值,當(dāng)然,吸取教訓(xùn)了,這個(gè)方法只有兩個(gè)參數(shù)。現(xiàn)在都封裝在這個(gè)新的名叫EasyASP的家伙中了,顧名思義,無(wú)非是想一切都簡(jiǎn)單點(diǎn)。
另外還有一個(gè)更尷尬的,那就是VBScript并不是面向?qū)ο蟮恼Z(yǔ)言,所以這個(gè)類其實(shí)說(shuō)穿了也只是一些過(guò)程和方法的封裝,方便使用而已,所以其中大部分的方法和過(guò)程都可以提出來(lái)單獨(dú)使用。當(dāng)然,如果有需要,也可以把它封裝成wsc或者dll組件使用。
=================================================================
使用說(shuō)明
=================================================================
1、使用方法:
(1) Easp類的所有調(diào)用都已包含在easp.asp中,所以只需要在頁(yè)首引入該文件,如:
<!--#include file="inc/easp/easp.asp" -->
或:
<!--#include virtual="/inc/easp/easp.asp"-->
(2) 該類已經(jīng)實(shí)例化,無(wú)需再單獨(dú)實(shí)例化,直接使用Easp.前綴調(diào)用即可,如:
Easp.wn("Test String") 或 Easp.db.AutoId("Table:ID")
(3) 如要同時(shí)操作多個(gè)數(shù)據(jù)庫(kù),請(qǐng)實(shí)例化新的easpdb對(duì)象,如:
Dim db2 : Set db2 = New EasyASP_db
db2.dbConn = db2.OpenConn(0,dbase,server)
2、參數(shù)約定:
(1) 數(shù)組參數(shù):由于VBScript沒(méi)有arguments屬性,不能使用動(dòng)態(tài)參數(shù),所以,在本類涉及到數(shù)據(jù)庫(kù)數(shù)據(jù)的代碼中,使用了Array(數(shù)組)來(lái)達(dá)到這一效果。本類中的部分參數(shù)可以使用數(shù)組(參數(shù)說(shuō)明中有注明),但使用數(shù)組時(shí)應(yīng)參照以下格式:
Array("Field1:Value1", "Field2:True", "Field3:100")
對(duì),有點(diǎn)像json的格式,如果涉及到變量,那就這樣:
Array("Field1:" & Value1, "Field2:" & Value2, "Field3:" & Value3)
可以這樣說(shuō),本類中的幾乎所有與數(shù)據(jù)庫(kù)字段相關(guān)的內(nèi)容都可以用以上的數(shù)組格式來(lái)設(shè)置條件或者是獲取內(nèi)容,包括調(diào)用存儲(chǔ)過(guò)程要傳遞的參數(shù)。而這個(gè)類里最大的優(yōu)點(diǎn)就是在使用時(shí)不用去考慮字段的類型,在字段后跟一個(gè)冒號(hào),接著跟上相應(yīng)的值就行了。如果你經(jīng)常手寫(xiě)ASP程序的話,你很快就會(huì)感受到運(yùn)用這種方式的魅力,除了數(shù)據(jù)類型不用考慮之外,它也很方便隨時(shí)添加和刪除條件。這里舉個(gè)例子說(shuō)明這個(gè)用法:
比如添加新記錄的方法:
Easp.db.AddRecord "Table", Array("FieldsA:測(cè)試數(shù)據(jù)","FieldsB:"&Now(),"FieldsC:True")
參數(shù)只有兩個(gè),一個(gè)是表名,另一個(gè)就是這樣的數(shù)組參數(shù)。如果要改變數(shù)據(jù)庫(kù)結(jié)構(gòu),則修改上面的程序代碼就非常簡(jiǎn)單了。
(2) 共用參數(shù)(用特殊符號(hào)分隔): 也是考慮到要盡量減少參數(shù),如果有些參數(shù)在很多時(shí)候都可以沒(méi)有的話,那就沒(méi)有必要專門(mén)為它增加一個(gè)參數(shù)。在本類里采用了特殊符號(hào)如冒號(hào)(:)分隔一個(gè)參數(shù)中的多個(gè)值來(lái)達(dá)到傳遞多個(gè)參數(shù)的效果。舉幾個(gè)例子說(shuō)明一下,同時(shí)也可以預(yù)覽一下采用本類的一些優(yōu)勢(shì):
比如建立MSSQL數(shù)據(jù)庫(kù)連接對(duì)象的方法:
Set Conn = Easp.db.Open(0,"Database","User:Password@ServerAddress")
很一目了然對(duì)不對(duì),這里就用:和@分隔了幾個(gè)參數(shù)而放在同一個(gè)參數(shù)里了。另外如果是Access數(shù)據(jù)庫(kù)有密碼則在第3個(gè)參數(shù)中輸入就行了,沒(méi)有其它參數(shù)了。
再比如獲取記錄集的方法:
Set rs = Easp.db.GetRecord("Table:FieldsA,FieldsB,FieldsC:20","ID > 10","ID Desc")
其中第1個(gè)參數(shù)中包含了表名,要取的字段和要取的記錄數(shù),因?yàn)樽侄魏陀涗洈?shù)很多時(shí)候是可以省略的,所以俺索性把參數(shù)也省略了,這樣要記的參數(shù)要少很多滴。
再比如本類里有一個(gè)GetUrl()的獲取本頁(yè)面地址的方法,很多地方都見(jiàn)過(guò)是吧,但是本類里這個(gè)方法帶一個(gè)參數(shù),通過(guò)這個(gè)參數(shù)可以取得很多結(jié)果,看例子:
相關(guān)文章
Access 2000 數(shù)據(jù)庫(kù) 80 萬(wàn)記錄通用快速分頁(yè)類
Access 2000 數(shù)據(jù)庫(kù) 80 萬(wàn)記錄通用快速分頁(yè)類...2007-03-03

Asp類 的數(shù)據(jù)庫(kù)領(lǐng)域
Asp類 的數(shù)據(jù)庫(kù)領(lǐng)域...
2006-10-10