一、連接資料庫的連結字串關鍵字
| |
Provider | 資料庫所對應的LOE DB Provider 之名稱 |
Data Source | 資料庫的完整路徑 |
Location | 連結的伺服器 (Server)名稱 |
User ID | 連結資料庫時所用的User Name |
Password | 連結資料庫所使用的密碼 |
File Name | 用Data Link File(資料連結檔)連結資料庫時所指定的檔名 |
DSN | 使用ODBC DSN連結資料庫時所指定的DSN名稱 |
Driver | ODBC驅動程試的名稱 |
DBQ | 以ODBC驅動程式的方式連結資料庫時所使用的資料庫檔名 |
l 設定值須以” ”包起來
l 關鍵字和設定值之間用等號(=)連接,且=前後不加空白
l 幾個「關鍵字=設定值」串接時須使用分號(;)
l 設定值太長時可分行,用「 -」,「 -」之前須空一個以上的字元。第二行須用字串連接運算子「&」連接
連結字串=”Provider=Microsoft.Jet.OLEDB.4.0;” -
& “Data Source=..\aspdb\Book.mdb”
二、製作ADO物件的方法
<% Set 變數名稱=Server.CreateObject(“類別名稱”) %>
類別名稱:ADODB.Connection ,ADODB.Error ,ADODB.Command ,ADODB.Parameter ,ADODB.RecordSet ,ADODB.Field , ADODB.Property
例:
<% Set cn=Server.CreateObject(“Connection”) %>
<% Set rs=Server.CreateObject(“RecordSet”) %>
三、連結資料庫Connection
連結資料庫
<% Set cn=Server.CreateObject(“ADODB.Connection”)
cn.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & “Data Source=..\fpdb\Book.mdb” %>
關閉資料庫
cn.Close
連接逾時間:預設15秒
<% cn.ConnectionTimeOut=30 %> 改設逾時為30秒
利用Recordset物件存入資料庫來源,才能進行新增、修改、刪除、查詢等等操作。
例:
<% Set cn=Server.CreateObject(“ADODB.Connection”)
cn.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & “Data Source=..\fpdb\Book.mdb”
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "書籍",cn,3,3 -----取得書籍資料表的所有資料記錄
rs.open "Select * From 書籍 where 售價>=500",cn,3,3 --只取得部份記錄
%>
說明:
1.連接資料庫 | |
2.製作Recordset物件 | <% 物件變數=Server.CreateObject(“ADODB.Recordset”) %> |
3.執行Recordset物件的Open | 物件變數.Open Source,objconn,cursortype,locktype,commandtype source:SQL敘述、表格名稱及預儲程式 objconn:連結中的connection物件 cursortype:cursor種類有4種 0:adOpenForwardOnly ,預設值,記錄只可向前方(最後一筆)移動,讀取。最快,只想瀏覽。 1:adOpenKeyset,記錄指標可任意移動、讀取、寫入。無法引用其它RecordSet的變更。 2:adOpenDynamic ,同1,可引用其它RecordSet的變更,但最慢。 3:adOpenStatic記錄指標可任意移動、讀取寫入。但不可引用其它使用者所變更後的資料。 Locktype:lock的種類,一筆資料不能同時被二個使用者編修 1:adLockReadOnly,預設值,唯讀 2:adLockPssimistic,當變成目前的RecordSet時(取得資料記錄集後),各記錄鎖定 3:adLockOptimistic,僅在Update(更新)時鎖定 4:adLockBatchOptimistic,可同時更新多筆記錄,暫不將更新資料放入資料庫,放暫存區,僅在UpdateBatch時鎖定、寫入資料庫。 commandtype:可指定下列的型態值 adcmdText:字串型態的SQL敘述 adcmdTable:表格 adcmdStoreProc:預儲程式 adcmdUnKnown:未知 |
4.關閉資料來源 | rs.Close rs:Recordset物件名稱 執行Close後,資料集所佔用的系統資源會被釋放出來,但不會從記憶體中移除,若要再使用Recordset時,只要再下Open即可 |
Recordset 物件的操作
一、Recordset 物件操作簡圖
二、在指定的 Recordset 物件中新增資料錄的方法(Method)
1) Recordset.Addnew -- 新增一筆資料錄。
2) Recordset.Update -- 更新資料集。
三、在指定的 Recordset 物件中移動資料錄的方法(Method)
語法:Recordset.{MoveFirst | MoveLast | MoveNext | MovePrevious}
說明:
1) Recordset.MoveFirst -- 移到第一筆資料錄。
2) Recordset.MoveLast -- 移到最後一筆資料錄。
3) Recordset.MoveNext -- 移到下一筆資料錄。
4) Recordset.MovePrevious -- 移到前一筆資料錄。
四、指標超出資料集有效範圍時
1) Recordset.EOF -- 為真值(True)時,表示指標已超過資料集的最後一筆資料錄
2) Recordset.BOF -- 為真值(True)時,表示指標已超過資料集的第一筆資料錄
※ 當有一資料集的 Recordset.BOF 為真,而且 Recordset.EOF 也為真時,表示這是一個空的資料集。
三、資料的統計的屬性
1) Recordset.RecordCount -- 資料集中資料錄總筆數
2) Recordset.AbsolutePage -- 目前指標所在的頁次
3) Recordset.PageSize -- 在資料集中每一頁所要顯示的資料筆數
4) Recordset.PageCount -- 根據 PageSize 設定的顯示筆數所計算出的總頁數
五、Field物件的使用
RecordSet | ||||||
Field | ||||||
0 書碼 | 1 書名 | 2 書局 | 3 作者 | 4 售價 |
取得記錄的欄名及欄位內容的方法:
- 用索引編號
- 取得欄位名稱 RecordSet.Fields(1).Name
- 取得欄位內容 RecordSet.Fields(1).value 或 RecordSet.Fields(1)
- 用物件名稱來取得內容
- 直接用欄位名稱 RecordSet.Fields("書名") 或 RecordSet("書名")