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