- 1. QQ IP數(shù)據(jù)庫20110625最新下載 綠色免費版
- 2. phpMyAdmin(支持對數(shù)據(jù)庫進行建立、復(fù)制,刪除數(shù)據(jù)等...
- 3. QQ IP數(shù)據(jù)庫20110620最新下載 簡體中文綠色免費版
- 4. 純真QQ IP數(shù)據(jù)庫(正確顯示QQIP地址)20110615最新下...
- 5. QQ IP數(shù)據(jù)庫20110610最新下載 簡體中文綠色免費版
- 6. 貝卡文件自動備份系統(tǒng)(支持備份數(shù)據(jù)庫文件) V3.31 ...
- 7. 浪跡萬能數(shù)據(jù)庫(完全取代access操作) V1.2 簡體中文...
- 8. phpMyAdmin(支持對數(shù)據(jù)庫進行完全操控) V3.4.2.0 F...
- 9. ESET VC52 Scan(支持免費更新ESET數(shù)據(jù)庫) V1.0.0.2...
- 10. QQ IP數(shù)據(jù)庫20110530最新下載 簡體中文綠色免費版
ASP中數(shù)據(jù)庫知識學(xué)習(xí)
作者: 來源: 發(fā)布時間:2011-6-4 9:37:45 點擊:
本文章提供的是ASP中的數(shù)據(jù)庫基礎(chǔ)知識的學(xué)習(xí),不管大家都知不知道,我們還是一起來還溫習(xí)鞏固一下把。
一、 ADO概述
ADO(ActiveX Data Object)是一組優(yōu)化的訪問數(shù)據(jù)庫的專用對象集,它為ASP提供了完整的站點數(shù)據(jù)庫訪問解決方案。ADO對象在服務(wù)器端執(zhí)行,并向客戶端提供含有數(shù)據(jù)庫信息的內(nèi)容,客戶端也可以根據(jù)指定的權(quán)限返回參數(shù)來對數(shù)據(jù)庫進行讀寫等操作。ADO的特點就是執(zhí)行速度快、使用簡單、低內(nèi)存消耗且占用硬盤空間小。
因為ADO是通過ODBC來對數(shù)據(jù)庫進行訪問的,所以它可以連接各種支持ODBC的數(shù)據(jù)庫,如Access、SQL Server、Oracle、Informix等。在使用ADO之前要先在ODBC中添加相應(yīng)的數(shù)據(jù)庫驅(qū)動程序,并創(chuàng)建相應(yīng)的DSN(數(shù)據(jù)源名)。ADO 中包含許多對象,其中Connection對象和Recordset對象主要用于控制數(shù)據(jù)庫存取,要建立一次數(shù)據(jù)庫訪問首先要創(chuàng)建一個 Connection對象,然后用基于這個Connection對象的Recordset對象來完成對數(shù)據(jù)庫從操作。
二、 Connection對象
Connection對象代表了一個打開的同OLE DB數(shù)據(jù)源的連接,它有點類似于client/server數(shù)據(jù)庫應(yīng)用中同Server間的真實網(wǎng)絡(luò)連接,我們可以獨立于任何其它對象建立一個 Connection對象。注意,在引用一個Connection之前首先要創(chuàng)建這個Connection對象,其語法如下,其中connection為引用該Connection對象的變量:Setconnection=Server.CreatObject(“ADODB.Connetcion”)
Connection對象中包含有多個屬性,下面是幾個常用的屬性,注意只能在創(chuàng)建Connection對象之后且該對象被打開前改變其屬性。語法如:Connection.屬性=屬性值
1. ConnectionString一個包含連接信息的字符串,將一個“DSN名” 或是一個由“argument = value”組成的字符串傳遞給ConnectionString屬性,可以為Connection對象指定一個數(shù)據(jù)源,此屬性可以在連接打開前設(shè)置,也可以在“Open”命令中設(shè)置。ADO中的argument有以下幾個:
參數(shù) 描述
Provider 該Connection對象的創(chuàng)建者,默認值為MSDASQL (Microsoft ODBC Provider for OLE DB)
Data Source 指定該Connection的ODBC數(shù)據(jù)源(DSN)
User 設(shè)置打開該連接的用戶名
Password 設(shè)置打開該連接時所需要的密碼
File Name 由創(chuàng)建者指定的包含該Connection信息的文件
2. Mode
可以設(shè)置為以下常量的參數(shù),用來設(shè)置用戶對當(dāng)前連接的訪問權(quán)限。
常量 值 含義
adModeUnknown 0 未設(shè)置對數(shù)據(jù)庫的操作權(quán)限(默認)
adModeRead 1 只讀
adModeWrite 2 只寫
adModeReadWrite 3 可以讀寫
adModeShareDenyRead 4 禁止對數(shù)據(jù)源建立其它的只讀連接
adModeShareDenyWrite 8 禁止對數(shù)據(jù)源建立其它的只寫連接
adModeShareExclusive 12 禁止對數(shù)據(jù)源建立其它的讀/寫連接
adModeShareDenyNone 16 禁止對數(shù)據(jù)源建立其它的任何連接
3. ConnectionTimeout 指定等待建立連接的時間,若超時則中斷請求并給出錯誤信息。等待時間以秒為單位,可以將一個整數(shù)值賦給這個參數(shù),默認值是15秒。設(shè)置 ConnectionTimeout屬性可以在網(wǎng)絡(luò)擁擠或服務(wù)器忙時給出提示,防止無休止的等待。若將ConnectionTimeout的值設(shè)置為0,則系統(tǒng)一直等待直到連接建立成功。
4. CommandTimeout 指定當(dāng)執(zhí)行“Execute”命令時的等待時間,若超時則中斷請求并給出錯誤信息。等待時間以秒為單位,可以將一個整數(shù)值賦給這個參數(shù),默認值是30秒。使用Connection對象的Open、Close和Execute方法可以完成從建立數(shù)據(jù)庫連接,到操縱數(shù)據(jù)庫和最后關(guān)閉連接的所有數(shù)據(jù)庫訪問動作。
. Open Open方法打開Connection對象同數(shù)據(jù)源之間的物理連接,語法如下:
connection. Open ConnectionString,UserID, Password
connection 代表一個對象變量,用于引用已經(jīng)存在的Connection對象。
ConnectionString 可選變量,含義同前面提到的ConnectionString屬性。
UserID 可選變量,是一個包含建立連接時使用的用戶名的字符串。
Password 可選變量,是一個包含建立連接時所使用的密碼的字符串。
. Close 用Close方法可以關(guān)閉一個已經(jīng)打開的Connection對象,但是此時該Connection對象并沒有被從內(nèi)存中刪除,我們還可以改變它的屬性參數(shù)或是打開這個對象,若要真正釋放該對象占用的內(nèi)存空間需要將這個對象設(shè)置為“Nothing”。如果基于此Connection對象還打開了其它的 RecordSet對象,在關(guān)閉Connection對象的同時會關(guān)閉所有相關(guān)的recordSet對象。
. Execute 使用Execute可以根據(jù)已經(jīng)打開的Connection對象執(zhí)行SQL語句或一個存儲過程,并可以用一個RecordSet對象指向得出的結(jié)果集合。Execute命令的語法如下:
connection.Execute CommandText, RecordsAffected, Options
CommandText 字符串,包含將要執(zhí)行的SQL語句、表名或存儲過程。
RecordsAffected 可選參數(shù),一個長整型變量,操縱執(zhí)行完后,其返回值為該操縱影響的記錄的數(shù)量。
Options 可選參數(shù),描述CommandText中包含何種操縱參數(shù),有以下可用值:
常量 值 含義
adCmdText 1 CommandText是一個用SQL語句描述的命令
adCmdTable 2 CommandText是一個表名
adCmdStoredProc 4 CommandText是一個存儲過程
adCmdUnknown 8 CommandText是一個未知的命令類型
使用Connection對象的各種方法可以完成對數(shù)據(jù)庫的各種訪問動作,比如添加、刪除、更新和選取等操作。
三、 Recordset對象
雖然使用Execute方法已經(jīng)可以實現(xiàn)對數(shù)據(jù)庫的各種操作,但是在編程中我們更常用的還是RecordSet對象,ADO中的內(nèi)建對象 RecordSets是數(shù)據(jù)庫訪問的主要接口,它指向數(shù)據(jù)表中的一個記錄集,它有點類似于C語言中指針的概念,在任何時刻一個RecordSets對象只能指向一條記錄。
Recordset對象提供了許多方法和屬性來方便對數(shù)據(jù)庫的操作,下面是一些常用的Recordset方法及屬性。
* CursorType 應(yīng)該在Recordset對象打開之前設(shè)置這個屬性,它決定了Recordset的游標類型,CursorType可以為以下值:
常量 值 含義
adOpenStatic 3 靜態(tài)游標,它是所訪問的記錄集的拷貝,看不到其它用戶對數(shù)據(jù)庫的修改
AdOpenDynamic 2 動態(tài)游標,可以看到其它用戶對數(shù)據(jù)庫的添加、刪除和修改等操作,允許 游標向前或向后移動
adOpenKeyset 1 關(guān)鍵字游標,與動態(tài)游標相同,但是只能看到其它用戶對數(shù)據(jù)庫的更新, 看不到添加和刪除結(jié)果
adOpenForwardOnly 0 向前游標,同靜態(tài)游標相同,但是游標只能向前移動
* BOF Recordset屬性,在當(dāng)前Recordset對象指向記錄集中的第一條記錄之前時BOF返回值為True(-1),反之為False(0)。
* EOF Recordset屬性,當(dāng)當(dāng)前Recordset對象指向記錄集中的最后一條記錄之后BOF返回值為True(-1),反之為False(0)。
* RecordCount Recordset屬性,RecordCount返回值為一個long型值,等于記錄集中記錄的數(shù)量。
* Open 在使用Recordset對象之前首先要用Open方法打開一個指向記錄集合的游標,其語法如下: recordset.Open Source, ActiveConnection, CursorType, LockType, Options
recordset: Recordset對象變量
Source: 可選參數(shù),用于選取記錄集,可以是SQL語句、表名或存儲過程
ActiveConnection: 可選參數(shù),一個變量代表一個打開的Connection對象
CursorType :可選參數(shù),指定游標類型,默認值為“0”
LockType 可選參數(shù),指定編輯記錄集時的鎖的類型如下:
常量 值 含義
AdLockReadOnly 1 只讀,不可修改記錄集
AdLockPessimistic 2 當(dāng)編輯記錄集時鎖定數(shù)據(jù)庫,禁止其它用戶訪問
AdLockOptimistic 3 只有使用Update方法時才鎖定數(shù)據(jù)庫
AdLockBatchOptimistic 4 只有使用UpdateBatch方法時才鎖定數(shù)據(jù)庫
Option: 可選參數(shù),同Connection的Open方法中的Option參數(shù)。
注意:在使用Recordset對象時可以不建立Connection對象,而是在Open方法中直接傳遞連接參數(shù),事實上這種情況下ADO還是創(chuàng)建了一個Connection對象,只是并不把它指派給對象變量。但是如果要用一個Connection對象建立多個Recordset對象,就必須建立對象并把它指派給一個Connection對象變量。
* AddNew 新建并初始化一個新記錄,并將RecordSet游標指向該記錄。
* Delete 刪除游標指向的當(dāng)前記錄。
ADO(ActiveX Data Object)是一組優(yōu)化的訪問數(shù)據(jù)庫的專用對象集,它為ASP提供了完整的站點數(shù)據(jù)庫訪問解決方案。ADO對象在服務(wù)器端執(zhí)行,并向客戶端提供含有數(shù)據(jù)庫信息的內(nèi)容,客戶端也可以根據(jù)指定的權(quán)限返回參數(shù)來對數(shù)據(jù)庫進行讀寫等操作。ADO的特點就是執(zhí)行速度快、使用簡單、低內(nèi)存消耗且占用硬盤空間小。
因為ADO是通過ODBC來對數(shù)據(jù)庫進行訪問的,所以它可以連接各種支持ODBC的數(shù)據(jù)庫,如Access、SQL Server、Oracle、Informix等。在使用ADO之前要先在ODBC中添加相應(yīng)的數(shù)據(jù)庫驅(qū)動程序,并創(chuàng)建相應(yīng)的DSN(數(shù)據(jù)源名)。ADO 中包含許多對象,其中Connection對象和Recordset對象主要用于控制數(shù)據(jù)庫存取,要建立一次數(shù)據(jù)庫訪問首先要創(chuàng)建一個 Connection對象,然后用基于這個Connection對象的Recordset對象來完成對數(shù)據(jù)庫從操作。
二、 Connection對象
Connection對象代表了一個打開的同OLE DB數(shù)據(jù)源的連接,它有點類似于client/server數(shù)據(jù)庫應(yīng)用中同Server間的真實網(wǎng)絡(luò)連接,我們可以獨立于任何其它對象建立一個 Connection對象。注意,在引用一個Connection之前首先要創(chuàng)建這個Connection對象,其語法如下,其中connection為引用該Connection對象的變量:Setconnection=Server.CreatObject(“ADODB.Connetcion”)
Connection對象中包含有多個屬性,下面是幾個常用的屬性,注意只能在創(chuàng)建Connection對象之后且該對象被打開前改變其屬性。語法如:Connection.屬性=屬性值
1. ConnectionString一個包含連接信息的字符串,將一個“DSN名” 或是一個由“argument = value”組成的字符串傳遞給ConnectionString屬性,可以為Connection對象指定一個數(shù)據(jù)源,此屬性可以在連接打開前設(shè)置,也可以在“Open”命令中設(shè)置。ADO中的argument有以下幾個:
參數(shù) 描述
Provider 該Connection對象的創(chuàng)建者,默認值為MSDASQL (Microsoft ODBC Provider for OLE DB)
Data Source 指定該Connection的ODBC數(shù)據(jù)源(DSN)
User 設(shè)置打開該連接的用戶名
Password 設(shè)置打開該連接時所需要的密碼
File Name 由創(chuàng)建者指定的包含該Connection信息的文件
2. Mode
可以設(shè)置為以下常量的參數(shù),用來設(shè)置用戶對當(dāng)前連接的訪問權(quán)限。
常量 值 含義
adModeUnknown 0 未設(shè)置對數(shù)據(jù)庫的操作權(quán)限(默認)
adModeRead 1 只讀
adModeWrite 2 只寫
adModeReadWrite 3 可以讀寫
adModeShareDenyRead 4 禁止對數(shù)據(jù)源建立其它的只讀連接
adModeShareDenyWrite 8 禁止對數(shù)據(jù)源建立其它的只寫連接
adModeShareExclusive 12 禁止對數(shù)據(jù)源建立其它的讀/寫連接
adModeShareDenyNone 16 禁止對數(shù)據(jù)源建立其它的任何連接
3. ConnectionTimeout 指定等待建立連接的時間,若超時則中斷請求并給出錯誤信息。等待時間以秒為單位,可以將一個整數(shù)值賦給這個參數(shù),默認值是15秒。設(shè)置 ConnectionTimeout屬性可以在網(wǎng)絡(luò)擁擠或服務(wù)器忙時給出提示,防止無休止的等待。若將ConnectionTimeout的值設(shè)置為0,則系統(tǒng)一直等待直到連接建立成功。
4. CommandTimeout 指定當(dāng)執(zhí)行“Execute”命令時的等待時間,若超時則中斷請求并給出錯誤信息。等待時間以秒為單位,可以將一個整數(shù)值賦給這個參數(shù),默認值是30秒。使用Connection對象的Open、Close和Execute方法可以完成從建立數(shù)據(jù)庫連接,到操縱數(shù)據(jù)庫和最后關(guān)閉連接的所有數(shù)據(jù)庫訪問動作。
. Open Open方法打開Connection對象同數(shù)據(jù)源之間的物理連接,語法如下:
connection. Open ConnectionString,UserID, Password
connection 代表一個對象變量,用于引用已經(jīng)存在的Connection對象。
ConnectionString 可選變量,含義同前面提到的ConnectionString屬性。
UserID 可選變量,是一個包含建立連接時使用的用戶名的字符串。
Password 可選變量,是一個包含建立連接時所使用的密碼的字符串。
. Close 用Close方法可以關(guān)閉一個已經(jīng)打開的Connection對象,但是此時該Connection對象并沒有被從內(nèi)存中刪除,我們還可以改變它的屬性參數(shù)或是打開這個對象,若要真正釋放該對象占用的內(nèi)存空間需要將這個對象設(shè)置為“Nothing”。如果基于此Connection對象還打開了其它的 RecordSet對象,在關(guān)閉Connection對象的同時會關(guān)閉所有相關(guān)的recordSet對象。
. Execute 使用Execute可以根據(jù)已經(jīng)打開的Connection對象執(zhí)行SQL語句或一個存儲過程,并可以用一個RecordSet對象指向得出的結(jié)果集合。Execute命令的語法如下:
connection.Execute CommandText, RecordsAffected, Options
CommandText 字符串,包含將要執(zhí)行的SQL語句、表名或存儲過程。
RecordsAffected 可選參數(shù),一個長整型變量,操縱執(zhí)行完后,其返回值為該操縱影響的記錄的數(shù)量。
Options 可選參數(shù),描述CommandText中包含何種操縱參數(shù),有以下可用值:
常量 值 含義
adCmdText 1 CommandText是一個用SQL語句描述的命令
adCmdTable 2 CommandText是一個表名
adCmdStoredProc 4 CommandText是一個存儲過程
adCmdUnknown 8 CommandText是一個未知的命令類型
使用Connection對象的各種方法可以完成對數(shù)據(jù)庫的各種訪問動作,比如添加、刪除、更新和選取等操作。
三、 Recordset對象
雖然使用Execute方法已經(jīng)可以實現(xiàn)對數(shù)據(jù)庫的各種操作,但是在編程中我們更常用的還是RecordSet對象,ADO中的內(nèi)建對象 RecordSets是數(shù)據(jù)庫訪問的主要接口,它指向數(shù)據(jù)表中的一個記錄集,它有點類似于C語言中指針的概念,在任何時刻一個RecordSets對象只能指向一條記錄。
Recordset對象提供了許多方法和屬性來方便對數(shù)據(jù)庫的操作,下面是一些常用的Recordset方法及屬性。
* CursorType 應(yīng)該在Recordset對象打開之前設(shè)置這個屬性,它決定了Recordset的游標類型,CursorType可以為以下值:
常量 值 含義
adOpenStatic 3 靜態(tài)游標,它是所訪問的記錄集的拷貝,看不到其它用戶對數(shù)據(jù)庫的修改
AdOpenDynamic 2 動態(tài)游標,可以看到其它用戶對數(shù)據(jù)庫的添加、刪除和修改等操作,允許 游標向前或向后移動
adOpenKeyset 1 關(guān)鍵字游標,與動態(tài)游標相同,但是只能看到其它用戶對數(shù)據(jù)庫的更新, 看不到添加和刪除結(jié)果
adOpenForwardOnly 0 向前游標,同靜態(tài)游標相同,但是游標只能向前移動
* BOF Recordset屬性,在當(dāng)前Recordset對象指向記錄集中的第一條記錄之前時BOF返回值為True(-1),反之為False(0)。
* EOF Recordset屬性,當(dāng)當(dāng)前Recordset對象指向記錄集中的最后一條記錄之后BOF返回值為True(-1),反之為False(0)。
* RecordCount Recordset屬性,RecordCount返回值為一個long型值,等于記錄集中記錄的數(shù)量。
* Open 在使用Recordset對象之前首先要用Open方法打開一個指向記錄集合的游標,其語法如下: recordset.Open Source, ActiveConnection, CursorType, LockType, Options
recordset: Recordset對象變量
Source: 可選參數(shù),用于選取記錄集,可以是SQL語句、表名或存儲過程
ActiveConnection: 可選參數(shù),一個變量代表一個打開的Connection對象
CursorType :可選參數(shù),指定游標類型,默認值為“0”
LockType 可選參數(shù),指定編輯記錄集時的鎖的類型如下:
常量 值 含義
AdLockReadOnly 1 只讀,不可修改記錄集
AdLockPessimistic 2 當(dāng)編輯記錄集時鎖定數(shù)據(jù)庫,禁止其它用戶訪問
AdLockOptimistic 3 只有使用Update方法時才鎖定數(shù)據(jù)庫
AdLockBatchOptimistic 4 只有使用UpdateBatch方法時才鎖定數(shù)據(jù)庫
Option: 可選參數(shù),同Connection的Open方法中的Option參數(shù)。
注意:在使用Recordset對象時可以不建立Connection對象,而是在Open方法中直接傳遞連接參數(shù),事實上這種情況下ADO還是創(chuàng)建了一個Connection對象,只是并不把它指派給對象變量。但是如果要用一個Connection對象建立多個Recordset對象,就必須建立對象并把它指派給一個Connection對象變量。
* AddNew 新建并初始化一個新記錄,并將RecordSet游標指向該記錄。
* Delete 刪除游標指向的當(dāng)前記錄。
[收藏此文章]