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