ASP的資料庫類

來源:互聯網
上載者:User
資料|資料庫 ASP的資料庫類

一、前言
  提到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相應內容


2、實現代碼(DBSql.inc.asp)
內容太長,點擊此處開啟/摺疊...
<%
'=======================================================================
' CLASS NAME: clsDB
' DESIGN BY : 彭國輝
' DATE: 2003-12-18
' SITE: http://kacarton.yeah.net/
' EMAIL: kacarton@sohu.com
' MODIFY:
' 2004-6-25: 升級後的資料引擎,返回錯誤代號小於0(也可以是ASP對數值的
' 定義有變),修改錯誤偵測err.number>0 ==> err.number<>0
' 2004-6-30:修改錯誤處理,忽略如遊標類型改變等非錯誤性質的提示
'=======================================================================

Class clsDB

' name of this class
' var string
' @access Private
' @see property: Name
Private m_strName

' version of this class
' var string
' @access Private
' @see property: Version
Private m_strVersion

' Error Object
' @var ADODB.Connection.Errors
' @access private
' @see property: LastError
Private m_LastError

' Ingore all Connection.Errors
' var Boolean
' @access private
' @see property: IgnoreError
Private m_IgnoreError

' Connection Object
' var ADODB.Connection
' @access Private
' @see property: Connection
Private m_Connection

' Is connection to database?
' var boolean
' @Private
Private m_bIsConnect

' RecordSet
' var RecordSet
' @access Private
Private m_RecordSet

' Connection string
' var string
' @access Private
' @see property: ConnectionString
Private m_ConneStr

' Database server host name or IP
' var string
' @access Private
' @see property: Host
Private m_strHost

' Database name
' var string
' @access Private
' @see property: Database
Private m_strDatabase

' Account to connection database
' var string
' @access Private
' @see property: UserName
Private m_UserName

' Password to connection database
' var string
' @access Private
' @see property: Password
Private m_Password

' get class name attribute.
' usage: oTemplate.Name
' access public
Public Property Get ClassName()
ClassName = m_strName
End Property

' get class version attribute.
' usage: oTemplate.Version
' access public
Public Property Get Version()
Version = m_strVersion
End Property

' Get class last error messages.
' usage: oTemplate.LastError
' @access public
Public Property Get LastError()
LastError = m_LastError
End Property

' Get or Set Ignore connection.errors
Public Property Get IgnoreError()
IgnoreError = m_IgnoreError
End Property

Public Pro



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.