一、前言
提到ASP操作資料庫,大多數人會想到:共用的串連字串ConStr、Conn.Open ConStr建立資料庫連接、Conn.Execute SqlCmd方式執行命令、RecordSet.Open Sql,Conn,1,1取得記錄集,的確這種方法被99%的人或公司採用。對於操作資料庫過程中產生的錯誤,恐怕99%的人不會進行處理,要麼在程式的開頭加入on error resume next“輕鬆”跳過去、要麼讓錯誤資訊連同錯誤碼一同“暴屍”在瀏覽者面前。對於前一種情況可能會產生讓人莫明其妙的怪異結果,後一種情況,可能會在某個時間(比如串連資料庫時)暴露您的敏感資訊,影響網站安全。當然,還是有個別負責的程式員同志會在容易產生錯誤的操作後面加入if err.xxxx來處理可能的錯誤,但這似乎不是一個好辦法,一不小心就可能漏掉了。
我至今也沒有想明白,為什麼在VB和ASP.NET中都存在的On Error Goto,偏偏在ASP中被取消了。
另外不得不提的是,當您在前面使用on error resume next而在後面不想resume next了,對不起,沒辦法,您只能把它“貫徹到底”。看看其它語言的異常機制,try..catch..finally隨心所欲,真是爽酷了!
說了這麼多,並不要為ASP引入諸如異常機制等新的內容,畢竟ASP語言本身也決定這是不可能實現的(ASP.NET中實現了),只是想在ASP中最普遍的也是最容易出現錯誤的資料庫操作中,找到一種有效錯誤處理方式,並把conn、RecordSet等封裝起來,達到最大限度的精簡。於是便有了下面的資料庫類。
二、資料庫類
1、功能
正如前面所說,這個類的目的是把ADODB.Connection、Adodb.Recordset等煩瑣的操作封裝起來並在類裡實現錯誤處理。現在看看類的成員、屬性和方法:
1)成員:(沒有公有或保護成員)
2)屬性:
ClassName-返回類名
Version-返回版本
LastError-返回最後的錯誤
IgnoreError-設定/返回是否忽略資料庫錯誤
Connection-返回連線物件(ADODB.Connection)
ConnectionString-設定/返回串連字串(本樣本為SQL Server,如為其它請根據實際設定)
FieldCount、PageSize、PageCount、AbsolutePage、AbsolutePosition、Bof、Eof-請參考Adodb.Recordset相應內容
3)方法:
Setup-設定串連資料服務器的帳號、密碼、資料庫名、主機/IP
Connect-串連資料庫
Close-關閉資料庫連接並釋放資源
Query-執行資料庫查詢命令並返回資料集
ExeSQL-執行SQL命令(不返回資料庫)
FieldName-返回指定序號的欄位名
Fields-返回指定的(序號或欄位名)欄位的值
Data-同上
MoveNext、MovePrevious、MoveFirst、MoveLast-請參考Adodb.Recordset相應內容