EasyASP v1.5發布(包含資料庫操作類,原clsDbCtrl.asp)第1/2頁
來源:互聯網
上載者:User
而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()的擷取本頁面地址的方法,很多地方都見過是吧,但是本類裡這個方法帶一個參數,通過這個參數可以取得很多結果,看例子: