您的位置:首頁 > 網絡編程 > ASP

ASP操作數據庫的類

日期:2007-11-14 02:12:05 點擊: 來自: 作者:

對于ASP的使用者來說,在數據庫操作上越簡單,就有更多的時間去考慮邏輯上和應用上的代碼,效率也會更高。今天俺在這里給大家提供一種數據庫操作的思路,這些代碼是俺在長期的ASP應用中不斷完成和修正的,也已經用它完成了很多項目了,應該說直接拿去用是沒有問題的。當然本人能力也有限,希望大家一起來討論。

說明:此帖代碼均是VBScript版本。另外最好你對手寫ASP已經有一定的基礎。

先簡單介紹一下俺這個類的一些特點

  1. 可同時操作多個不同類型的數據庫。
  2. 完全不用考慮數據類型的差別,再也不用想字符型字段加不加單引號。
  3. 調用非常簡單,對數據庫的主要操作一般只需要一行代碼。
  4. 支持mssql事務回滾。
  5. 可自動生成和輸出sql語句方便調試。

使用方法

1. 修改clsDbctrl.asp文件中的第1行為你自己的數據庫位置(修改方法參考下面的CreatConn函數說明)。如需連接多個數據庫可自行添加,格式相同。

2. 在你新建的asp文件中包含此asp文件。如:
   <!--#include file="Inc/clsDbctrl.asp" -->  或者:
   <!--#include virtual="/Inc/clsDbctrl.asp"-->

3.使用如下代碼應用此類:
   一個數據庫連接:

<%
OpenConn()        '打開數據庫連接
Dim db : Set db = New DbCtrl  '建立對象
'Your Code Here......
Co(db) : CloseConn() '釋放對象,關閉數據庫連接
%>

或者(一個或者多個數據庫連接):

<%
Dim db1 : Set db1 = New DbCtrl : db1.dbConn = Oc(a)
Dim db2 : Set db2 = New DbCtrl : db2.dbConn = Oc(b)
'Your Code Here......
Co(db1) : Co(db2)
%>

4.具體操作的例子可以參考各函數說明內的代碼示例。

方法和屬性概覽(詳細用法及例子在下面):

引用:
CreatConn    生成數據庫連接字符串
Oc           建立數據庫連接
Co           釋放對象
OpenConn     打開默認數據庫連接
CloseConn    關閉默認數據庫連接
dbCtrl.dbConn             屬性,獲取要操作的數據庫連接,默認值為Conn
dbCtrl.dbErr              屬性,只讀,輸出捕獲的錯誤信息
dbCtrl.Version            屬性,只讀,程序版本信息
dbCtrl.AutoId             方法,自動獲取唯一序列號
dbCtrl.GetRecord          方法,取得符合條件的紀錄集
dbCtrl.GetRecordBySql     方法,根據sql語句取得紀錄集
dbCtrl.GetRecordDetail    方法,根據某一條指定紀錄的詳細數據
dbCtrl.AddRecord          方法,添加一個新的紀錄
dbCtrl.UpdateRecord       方法,根據指定條件更新紀錄
dbCtrl.DeleteRecord       方法,刪除符合條件的紀錄
dbCtrl.ReadTable          方法,根據指定條件獲取某條紀錄中的其他字段的內容
dbCtrl.C                  方法,關閉紀錄集對象
dbCtrl.wGetRecord,
dbCtrl.wAddRecord,
dbCtrl.wUpdateRecord,
dbCtrl.wDeleteRecord      這4個方法是取得相應的操作(前面加w)的sql語句

參數約定

由于ASP沒有Arguments對象,不能使用動態參數,所以,在本類的代碼中,使用了Array(數組)來達到這一效果。本類中的部分參數可以使用數組(參數說明中有注明),但使用數組時應參照以下格式:

Array("Field1:Value1", "Field2:True", "Field3:100")

對,有點像json的格式,如果涉及到變量,那就這樣:

Array("Field1:" & Value1, "Field2:" & Value2, "Field3:" & Value3)

可以這樣說,本類中的幾乎所有與數據庫字段相關的內容都可以用以上的數組格式來設置條件或者是獲取內容。而這里最大的特點就是在使用時不用去考慮字段的類型,在字段后跟一個冒號,接著跟上相應的值就行了。如果你經常手寫ASP程序的話,你很快就會感受到運用這種方式的魅力,除了數據類型不用考慮之外,它也很方便隨時添加和刪除條件。如果你還不明白怎么用的話沒關系,下面有很多例子可以說明這個問題

要把ASP的數據庫操作封裝起來其實并不難,相信大家以前自己也做過類似的代碼或是借用過其他人的封裝好的代碼。但是就如各位知道的一樣,使用封裝后的代碼一旦出錯,排錯是一個比較麻煩的事情,一般說來,封裝后操作越簡單的排錯也越復雜。俺在寫這些代碼的時候已經盡我所能考慮到如果出錯的話如何去排查錯誤,在盡可能簡化用戶操作數據庫的代碼的同時可以隨時輸出sql語句排查錯誤。

最后需要說明一點,本文所涉及的ASP數據庫操作并不適合大型數據,如你所知,操作大型數據最好還是使用存儲過程之類的東東比較好,以后俺會考慮把對存儲過程的操作也封裝進去。還有一個效率問題,要追求高效率的話,用ASP還是應該考慮COM+等,所以再次聲明,本類適用的對象是中小型ASP項目。

好了,下面奉上詳細使用說明:

一.數據庫連接

考慮到大多數人的使用習慣,在數據庫連接上使用了公共過程,所以需要大家在代碼里自行修改,如果你已經建立了數據庫連接,把這幾行注釋掉就行了。代碼中內置了MSSql,Access,MySQL,Oracle4種數據庫的連接方式,當然你也可以自行在源代碼中增加或刪除。修改例如:

Dim a : a = CreatConn(0, "TestData", "localhost", "username", "userpassword")
Dim b : b = CreatConn(1, "Data/%TestDb%.mdb", "", "", "")

說明一下,第1個參數可以是字符串。如果是使用Access,則第2個參數輸入相對路徑和絕對路徑都是可以的,如有密碼也可以在第5個參數中輸入,如:

Dim c : c = CreatConn("ACCESS", "E:\MyWeb\Data\%TestDB%.mdb", "", "", "mdbpassword")

相關函數

原  型:CreatConn(dbType, strDB, strServer, strUid, strPwd)
功  能:建立數據庫連接字符串
返回值:String
參  數:
dbType     : Integer or String 連接數據庫類型
                  (0 or "MSSQL") - Microsoft SQL Server
                  (1 or "ACCESS") - Microsoft Office Access
                  (2 or "MYSQL") - MySQL Server
                  (3 or "ORACLE") - Oracle Server
strDB        : String       數據庫名或數據庫地址(Access使用絕對或者相對路徑均可)
strServer   : String       數據庫服務器地址,Access請留空
strUid        : String       數據庫用戶名,Access請留空
strPwd      : String       數據庫密碼

原  型:Oc(connStr)
功  能:打開數據庫連接
返回值:Object 數據庫連接對象
參  數:
connStr    : String  數據庫連接字符串,由CreatConn函數生成

原  型:Co(obj)
功  能:關閉對象
參  數:
obj    : Object  要關閉的對象名稱

原  型:OpenConn
功  能:打開默認數據庫連接,會自動建立一個名稱為Conn的連接對象
參  數:無

原  型:CloseConn
功  能:關閉名稱為Conn的默認數據庫連接對象
參  數:無

More..素材圖片 Picture Navigation
ASP熱門 Class Hot
ASP推薦 Class Commend
版權所有:中國網站資源 2005- 未經授權禁止復制或建立鏡像 This Site Tech:XHTML+DIV+CSS+Javascript
CopyRight ® 2005- www.21ftd.com online services. all rights reserved. ICP06016627
Optimized to 1024x768 to Firefox,Netscape,Opera,MS-IE6+.
ope电竞