EasyASP v1.5發(fā)布(包含數(shù)據(jù)庫操作類,原clsDbCtrl.asp)第1/2頁
而easp類中提供了大量實(shí)用的asp通用過程及方法,可以簡化大部分的asp操作。目前只提供了vbscript版,jscript版將來可能會提供。
easyasp v1.5 (2008-10-22更新)
新增功能:
1、將數(shù)據(jù)庫控制類(原clsdbctrl.asp)封裝入easp類,均通過easp.db調(diào)用,也可獨(dú)立使用。
2、新增mssql存儲過程調(diào)用方法,可靈活調(diào)用存儲過程并返回返回值、記錄集及出參。
3、新增db.creatconn方法,可以根據(jù)自定義的連接字符串連接數(shù)據(jù)庫。
4、新增db.json方法,可以將數(shù)據(jù)庫記錄集按json格式輸出。
5、新增db.rand和db.randstr方法,可以生成一個不重復(fù)的隨機(jī)數(shù)或者隨機(jī)字符串
6、新增數(shù)據(jù)庫操作各方法的簡寫方法,更節(jié)約書寫代碼時間。
7、在easp類中新增大量的實(shí)用方法,如安全獲取值、防sql注入、服務(wù)器端表單驗(yàn)證等。
其它更新:
1、優(yōu)化db.autoid自動獲取編號,效率提高20倍以上,數(shù)據(jù)量越大越明顯。
2、修改db.openconn數(shù)據(jù)庫連接方法,更符合日常描述習(xí)慣。
3、修改db.getrecord取記錄集方法,參數(shù)更少。修正條件使用數(shù)組報錯的bug。
4、修改并優(yōu)化db.deleterecord刪除記錄方法,目前只有兩個參數(shù)了。
5、修改了錯誤調(diào)試方法,增加debug全局屬性控制錯誤顯示。
更新說明:
以前寫了一個clsdbctrl.asp數(shù)據(jù)庫控制類,收到一些反饋,還有朋友發(fā)來郵件告訴我一些改進(jìn)的方法,很感謝他們。而我在原帖的跟帖中看到一條留言說“有記參數(shù)的時間,sql語句早都寫完了”,更是直接指出了其中的尷尬,的確,盡管vbs沒有arguments屬性,但用太多的參數(shù)也不是個好主意。所以我花了些時間把這個類的許多代碼都重寫了一下,在保證功能只能更強(qiáng)不能更弱的前提下,一個方法最多只有3個參數(shù)了。另外新增加了一個調(diào)用mssql存儲過程的方法,可以靈活的調(diào)用存儲過程并根據(jù)需要返回一個或多個記錄集、輸出參數(shù)及返回值,當(dāng)然,吸取教訓(xùn)了,這個方法只有兩個參數(shù)。現(xiàn)在都封裝在這個新的名叫easyasp的家伙中了,顧名思義,無非是想一切都簡單點(diǎn)。
另外還有一個更尷尬的,那就是vbscript并不是面向?qū)ο蟮恼Z言,所以這個類其實(shí)說穿了也只是一些過程和方法的封裝,方便使用而已,所以其中大部分的方法和過程都可以提出來單獨(dú)使用。當(dāng)然,如果有需要,也可以把它封裝成wsc或者dll組件使用。
=================================================================
使用說明
=================================================================
1、使用方法:
(1) easp類的所有調(diào)用都已包含在easp.asp中,所以只需要在頁首引入該文件,如:
或:
(2) 該類已經(jīng)實(shí)例化,無需再單獨(dú)實(shí)例化,直接使用easp.前綴調(diào)用即可,如:
easp.wn("test string") 或 easp.db.autoid("table:id")
(3) 如要同時操作多個數(shù)據(jù)庫,請實(shí)例化新的easpdb對象,如:
dim db2 : set db2 = new easyasp_db
db2.dbconn = db2.openconn(0,dbase,server)
2、參數(shù)約定:
(1) 數(shù)組參數(shù):由于vbscript沒有arguments屬性,不能使用動態(tài)參數(shù),所以,在本類涉及到數(shù)據(jù)庫數(shù)據(jù)的代碼中,使用了array(數(shù)組)來達(dá)到這一效果。本類中的部分參數(shù)可以使用數(shù)組(參數(shù)說明中有注明),但使用數(shù)組時應(yīng)參照以下格式:
array("field1:value1", "field2:true", "field3:100")
對,有點(diǎn)像json的格式,如果涉及到變量,那就這樣:
array("field1:" & value1, "field2:" & value2, "field3:" & value3)
可以這樣說,本類中的幾乎所有與數(shù)據(jù)庫字段相關(guān)的內(nèi)容都可以用以上的數(shù)組格式來設(shè)置條件或者是獲取內(nèi)容,包括調(diào)用存儲過程要傳遞的參數(shù)。而這個類里最大的優(yōu)點(diǎn)就是在使用時不用去考慮字段的類型,在字段后跟一個冒號,接著跟上相應(yīng)的值就行了。如果你經(jīng)常手寫asp程序的話,你很快就會感受到運(yùn)用這種方式的魅力,除了數(shù)據(jù)類型不用考慮之外,它也很方便隨時添加和刪除條件。這里舉個例子說明這個用法:
比如添加新記錄的方法:
easp.db.addrecord "table", array("fieldsa:測試數(shù)據(jù)","fieldsb:"&now(),"fieldsc:true")
參數(shù)只有兩個,一個是表名,另一個就是這樣的數(shù)組參數(shù)。如果要改變數(shù)據(jù)庫結(jié)構(gòu),則修改上面的程序代碼就非常簡單了。
(2) 共用參數(shù)(用特殊符號分隔): 也是考慮到要盡量減少參數(shù),如果有些參數(shù)在很多時候都可以沒有的話,那就沒有必要專門為它增加一個參數(shù)。在本類里采用了特殊符號如冒號(:)分隔一個參數(shù)中的多個值來達(dá)到傳遞多個參數(shù)的效果。舉幾個例子說明一下,同時也可以預(yù)覽一下采用本類的一些優(yōu)勢:
比如建立mssql數(shù)據(jù)庫連接對象的方法:
set conn = easp.db.open(0,"database","user:password@serveraddress")
很一目了然對不對,這里就用:和@分隔了幾個參數(shù)而放在同一個參數(shù)里了。另外如果是access數(shù)據(jù)庫有密碼則在第3個參數(shù)中輸入就行了,沒有其它參數(shù)了。
再比如獲取記錄集的方法:
set rs = easp.db.getrecord("table:fieldsa,fieldsb,fieldsc:20","id > 10","id desc")
其中第1個參數(shù)中包含了表名,要取的字段和要取的記錄數(shù),因?yàn)樽侄魏陀涗洈?shù)很多時候是可以省略的,所以俺索性把參數(shù)也省略了,這樣要記的參數(shù)要少很多滴。
再比如本類里有一個geturl()的獲取本頁面地址的方法,很多地方都見過是吧,但是本類里這個方法帶一個參數(shù),通過這個參數(shù)可以取得很多結(jié)果,看例子
easyasp v1.5 (2008-10-22更新)
新增功能:
1、將數(shù)據(jù)庫控制類(原clsdbctrl.asp)封裝入easp類,均通過easp.db調(diào)用,也可獨(dú)立使用。
2、新增mssql存儲過程調(diào)用方法,可靈活調(diào)用存儲過程并返回返回值、記錄集及出參。
3、新增db.creatconn方法,可以根據(jù)自定義的連接字符串連接數(shù)據(jù)庫。
4、新增db.json方法,可以將數(shù)據(jù)庫記錄集按json格式輸出。
5、新增db.rand和db.randstr方法,可以生成一個不重復(fù)的隨機(jī)數(shù)或者隨機(jī)字符串
6、新增數(shù)據(jù)庫操作各方法的簡寫方法,更節(jié)約書寫代碼時間。
7、在easp類中新增大量的實(shí)用方法,如安全獲取值、防sql注入、服務(wù)器端表單驗(yàn)證等。
其它更新:
1、優(yōu)化db.autoid自動獲取編號,效率提高20倍以上,數(shù)據(jù)量越大越明顯。
2、修改db.openconn數(shù)據(jù)庫連接方法,更符合日常描述習(xí)慣。
3、修改db.getrecord取記錄集方法,參數(shù)更少。修正條件使用數(shù)組報錯的bug。
4、修改并優(yōu)化db.deleterecord刪除記錄方法,目前只有兩個參數(shù)了。
5、修改了錯誤調(diào)試方法,增加debug全局屬性控制錯誤顯示。
更新說明:
以前寫了一個clsdbctrl.asp數(shù)據(jù)庫控制類,收到一些反饋,還有朋友發(fā)來郵件告訴我一些改進(jìn)的方法,很感謝他們。而我在原帖的跟帖中看到一條留言說“有記參數(shù)的時間,sql語句早都寫完了”,更是直接指出了其中的尷尬,的確,盡管vbs沒有arguments屬性,但用太多的參數(shù)也不是個好主意。所以我花了些時間把這個類的許多代碼都重寫了一下,在保證功能只能更強(qiáng)不能更弱的前提下,一個方法最多只有3個參數(shù)了。另外新增加了一個調(diào)用mssql存儲過程的方法,可以靈活的調(diào)用存儲過程并根據(jù)需要返回一個或多個記錄集、輸出參數(shù)及返回值,當(dāng)然,吸取教訓(xùn)了,這個方法只有兩個參數(shù)。現(xiàn)在都封裝在這個新的名叫easyasp的家伙中了,顧名思義,無非是想一切都簡單點(diǎn)。
另外還有一個更尷尬的,那就是vbscript并不是面向?qū)ο蟮恼Z言,所以這個類其實(shí)說穿了也只是一些過程和方法的封裝,方便使用而已,所以其中大部分的方法和過程都可以提出來單獨(dú)使用。當(dāng)然,如果有需要,也可以把它封裝成wsc或者dll組件使用。
=================================================================
使用說明
=================================================================
1、使用方法:
(1) easp類的所有調(diào)用都已包含在easp.asp中,所以只需要在頁首引入該文件,如:
或:
(2) 該類已經(jīng)實(shí)例化,無需再單獨(dú)實(shí)例化,直接使用easp.前綴調(diào)用即可,如:
easp.wn("test string") 或 easp.db.autoid("table:id")
(3) 如要同時操作多個數(shù)據(jù)庫,請實(shí)例化新的easpdb對象,如:
dim db2 : set db2 = new easyasp_db
db2.dbconn = db2.openconn(0,dbase,server)
2、參數(shù)約定:
(1) 數(shù)組參數(shù):由于vbscript沒有arguments屬性,不能使用動態(tài)參數(shù),所以,在本類涉及到數(shù)據(jù)庫數(shù)據(jù)的代碼中,使用了array(數(shù)組)來達(dá)到這一效果。本類中的部分參數(shù)可以使用數(shù)組(參數(shù)說明中有注明),但使用數(shù)組時應(yīng)參照以下格式:
array("field1:value1", "field2:true", "field3:100")
對,有點(diǎn)像json的格式,如果涉及到變量,那就這樣:
array("field1:" & value1, "field2:" & value2, "field3:" & value3)
可以這樣說,本類中的幾乎所有與數(shù)據(jù)庫字段相關(guān)的內(nèi)容都可以用以上的數(shù)組格式來設(shè)置條件或者是獲取內(nèi)容,包括調(diào)用存儲過程要傳遞的參數(shù)。而這個類里最大的優(yōu)點(diǎn)就是在使用時不用去考慮字段的類型,在字段后跟一個冒號,接著跟上相應(yīng)的值就行了。如果你經(jīng)常手寫asp程序的話,你很快就會感受到運(yùn)用這種方式的魅力,除了數(shù)據(jù)類型不用考慮之外,它也很方便隨時添加和刪除條件。這里舉個例子說明這個用法:
比如添加新記錄的方法:
easp.db.addrecord "table", array("fieldsa:測試數(shù)據(jù)","fieldsb:"&now(),"fieldsc:true")
參數(shù)只有兩個,一個是表名,另一個就是這樣的數(shù)組參數(shù)。如果要改變數(shù)據(jù)庫結(jié)構(gòu),則修改上面的程序代碼就非常簡單了。
(2) 共用參數(shù)(用特殊符號分隔): 也是考慮到要盡量減少參數(shù),如果有些參數(shù)在很多時候都可以沒有的話,那就沒有必要專門為它增加一個參數(shù)。在本類里采用了特殊符號如冒號(:)分隔一個參數(shù)中的多個值來達(dá)到傳遞多個參數(shù)的效果。舉幾個例子說明一下,同時也可以預(yù)覽一下采用本類的一些優(yōu)勢:
比如建立mssql數(shù)據(jù)庫連接對象的方法:
set conn = easp.db.open(0,"database","user:password@serveraddress")
很一目了然對不對,這里就用:和@分隔了幾個參數(shù)而放在同一個參數(shù)里了。另外如果是access數(shù)據(jù)庫有密碼則在第3個參數(shù)中輸入就行了,沒有其它參數(shù)了。
再比如獲取記錄集的方法:
set rs = easp.db.getrecord("table:fieldsa,fieldsb,fieldsc:20","id > 10","id desc")
其中第1個參數(shù)中包含了表名,要取的字段和要取的記錄數(shù),因?yàn)樽侄魏陀涗洈?shù)很多時候是可以省略的,所以俺索性把參數(shù)也省略了,這樣要記的參數(shù)要少很多滴。
再比如本類里有一個geturl()的獲取本頁面地址的方法,很多地方都見過是吧,但是本類里這個方法帶一個參數(shù),通過這個參數(shù)可以取得很多結(jié)果,看例子
相關(guān)文章
- asp fso操作類
- asp下生成目錄樹結(jié)構(gòu)的類
- 推薦下天楓常用ASP函數(shù)封裝,推薦大家使用
- ASP實(shí)現(xiàn)緩存類無錯版
- XDOWNPAGE ASP版本 分頁類
- ASP里面令人震撼地Debug類(VBScript)
- ASP中利用execute實(shí)現(xiàn)動態(tài)包含文件的方法
- 結(jié)合FSO操作和Aspjpeg組件寫的Class
- Access 2000 數(shù)據(jù)庫 80 萬記錄通用快速分頁類
- asp的通用數(shù)據(jù)分頁類
- asp:debug類調(diào)試程序
- 文章內(nèi)頁類
- newasp中下載類
- ASP怎么談到應(yīng)用到類的?
- 遭遇ASP類的事件設(shè)計
- 葉子asp分頁類
- 淺談ASP中的類
- 代碼與頁面的分離
- 一個ACCESS數(shù)據(jù)庫訪問的類第1/3頁
- ASP 類 Class入門