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