Presentation is loading. Please wait.

Presentation is loading. Please wait.

資料庫程式設計 VB資料庫設計簡介 週次:4 建國科技大學 資管系 饒瑞佶.

Similar presentations


Presentation on theme: "資料庫程式設計 VB資料庫設計簡介 週次:4 建國科技大學 資管系 饒瑞佶."— Presentation transcript:

1 資料庫程式設計 VB資料庫設計簡介 週次:4 建國科技大學 資管系 饒瑞佶

2 資料控制項與資料存取物件 資料庫控制項 ( Adodc或DATA ) 提供的功能有限 半自動 方便,使用者不需要額外撰寫程式
功能較完整 需要撰寫程式碼 半自動 完全手動 二者可以交互使用

3 ADO的子物件 Connection物件:用以連接資料庫 Recordset物件:取得資料來源
Command物件:儲存操作資料庫時用到的命令 Parameter物件:管理查詢或預儲程式 Field物件:儲存欄位資料 Error物件:處理錯誤訊息 Property物件:保存Connection, Command, Recordset 與Field物件屬性的物件

4 物件間相對關係 Connection Recordset Property (ies) Fields 集合物件 Error Field 物件
Command Parameter(s)

5 如何存取物件成員? Recordset.Field (1) Recordset Fields Field (0) 使用索引編號 編號從0開始
但是當物件索引編號太多, 誰還記得我要的是第幾個

6 如何存取物件成員? 除了Recordset.Field (1)的寫法外 也可以使用物件的名稱來存取 Recordset對應的是一個資料表
HOW ? Recordset對應的是一個資料表 Fields對應的是一筆資料 Field對應的是一筆資料中的某個欄位 記欄位名稱一定比記索引編號更容易 所以欄位一定要取有意義的名稱

7 如何存取物件成員? 除了Recordset.Field (1)的寫法外 也可以使用 Recordset.Field (“書名”)

8 ADO的功用 移動紀錄 更新紀錄 新增紀錄 刪除紀錄 搜尋紀錄 篩選記錄 排序紀錄 還記得Adodc控制項中也介紹過此些功能嗎 ?

9 VB中如何引用ADO? 專案  設定引用項目  Microsoft ActiveX Data Objects 2.7

10 如何建立ADO? 宣告物件變數 (使用物件類別) 將物件型態帶入變數中 (真正建立物件) 物件 類別名稱 Connection
ADODB.Connection Error ADODB. Error Command ADODB. Command Parameter ADODB. Parameter Recordset ADODB. Recordset Field ADODB.Field Property ADODB. Property

11 如何建立ADO? 完成宣告物件變數, 但是還沒有建立 例如要宣告一個Connection物件
Dim Cn As ADODB.Connection 物件變數 物件類別 完成宣告物件變數, 但是還沒有建立

12 如何建立ADO? 完成物件的建立 要建立一個Connection物件 Dim Cn As ADODB.Connection
Set Cn = New ADODB.Connection 物件變數 建立物件 完成物件的建立

13 其他建立ADO物件的方法 Dim Cn As ADODB.Connection Set Cn = New ADODB.Connection
Set Cn = CreatObject(ADODB.Connection) Dim Cn As New ADODB.Connection

14 使用ADO物件 有了物件之後要做的是希望從資料庫中存取與操作資料 如何做呢 ?? 現在就真的要靠自己了 (懷念adodc控制項嗎?)
第一步應該是要先與資料庫取得聯繫 所以Connection物件就先登場了

15 Connection物件 建立物件 設定ConnectionString屬性 (還記得在adodc中也是設定此屬性,不過是程式自動產生的)
使用Connection物件的Open方法

16 ConnectionString屬性 一字串型態的參數 每個關鍵參數以; 號區隔 關鍵參數 說明 Provider
連結資料庫時所提供的OLE DB Provider (JET Engine) Data Source 連結資料庫的完整路徑 Location 連結的伺服器名稱 User ID 連結資料庫或伺服器時的使用者名稱 Password 連結資料庫或伺服器時的使用者密碼 File Name 使用Data Link File連結時 .udl的檔名 DSN 使用ODBC DSN連結時的DSN名稱 Driver ODBC驅動程式的名稱 DBQ 使用ODBC連結時,資料庫的檔名

17 Provider種類 資料庫種類 Provider名稱 Access Microsoft.Jet.OLEDB.3.51 ODBC
MSDASQL SQL Server SQLODEDB Oracle MSDAORA

18 連結開啟資料庫 Dim Cn as ADODB.Connection 建立物件 Set Cn = New ADODB.Connection
Cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;”_ & “DATA Source=c:\vb6\db\book.mdb” Cn.open 建立物件 設定ConnectionString屬性 使用Open方法

19 關閉連結資料庫 使用Close方法 Cn.Close 不過如此只是將佔用的系統資源釋放, 記憶體中
的資料庫資料並不會被移除,可以再使用Cn.Open 來再度開啟連結 Set Cn= nothing 可完全從記憶體釋放 Cn.close

20 Practice 其中有關Recordset的部分留待下一節再詳述

21 連結資料庫 Open方法與ConnectionString屬性的合併
Cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;”_ & “DATA Source=c:\vb6\db\book.mdb” Cn.open Cn.open “Provider=Microsoft.Jet.OLEDB.4.0;”_ & “DATA Source=c:\vb6\db\book.mdb” 或 Cstr= “Provider=Microsoft.Jet.OLEDB.4.0;”_ & “DATA Source=c:\vb6\db\book.mdb” Cn.open Cstr

22 使用ODBC DSN連結資料庫 或 Dim Cn as ADODB.Connection
Set Cn = New ADODB.Connection Cn.ConnectionString = “DSN=cnBook” Cn.open Cn.open “DSN=cnBook”

23 使用ODBC連結資料庫 或 Dim Cn as ADODB.Connection Set Cn = New ADODB.Connection
Cn.ConnectionString = “Driver=Microsoft Access Driver (*.mdb); DBQ=c:\vb6\db\book.mdb” Cn.open Cn.open “Driver=Microsoft Access Driver (*.mdb); DBQ=c:\vb6\db\book.mdb”

24 有Username與Password連結資料庫
Dim Cn as ADODB.Connection Set Cn = New ADODB.Connection Cn.ConnectionString =“DSN=cnbook;User ID=sa;Password=xxx” Cn.open Cn.open “DSN=cnbook”,”User ID=sa”, “Password=xxx”

25 連上資料庫後呢?? 終於可以連結上資料庫了,然後呢?? 應該是要存取與操作資料,所以輪到Recordset物件登場

26 建立Recordset物件 建立Recordset物件 設定Source與ActiveConnection屬性 使用Open方法
沒錯大部分的物件建立步驟都類似

27 建立Recordset物件的方法 Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset Dim rs As ADODB. Recordset Set rs = CreatObject(ADODB. Recordset) Dim rs As New ADODB. Recordset

28 Source與ActiveConnection屬性

29 Source屬性 Dim rs as ADODB.Recordset Set rs = New ADODB.Recordset
Rs.Source = “書籍” 資料表名稱

30 AvtiveConnection屬性與Open方法
Dim Cn as ADODB.Connection Dim Rs as ADODB.Recordset Set Cn = New ADODB.Connection Cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.3.51;”_ & “DATA Source=c:\vb6\db\book.mdb” Cn.open Set Rs = New ADODB.Recordset Rs.Source=“書籍” Rs.ActiveConnection=Cn Rs.open

31 關閉資料表 使用Close方法 Rs.Close 不過如此只是將佔用的系統資源釋放, 記憶體中
的資料庫資料並不會被移除,可以再使用Rs.Open 來再度開啟連結 Set Rs= nothing 可完全從記憶體釋放 Rs.close

32 Practice

33 再論Recordset的Open方法 Source與ActiveConnection的設定可以與Open方法合併
Rs.Source=“書籍” Rs.ActiveConnection=Cn == Rs.open “書籍”, Cn Rs.open Recordset.open Source, ActiveConnection, Cursortype, Locktype, Options

34 Cursortype 種類 值 說明 AdOpenForwardOnly 只可向前移動 AdOpenKeySet 1 可以自由移動
標示如何操作資料表 種類 說明 AdOpenForwardOnly 只可向前移動 AdOpenKeySet 1 可以自由移動 AdOpenDynamic 2 可動態更新編輯 AdOpenStatic 3 靜態更新編輯

35 使用Cursortype Rs.Source=“書籍” Rs.ActiveConnection=Cn
Rs.Cursortype=AdOpenDynamic Rs.open Rs.Open “書籍”,Cn, AdOpenDynamic

36 LockType 標示如何鎖定資料表 種類 值 說明 AdOpenReadOnly 1 唯讀 AdOpenPessimistic 2
悲觀鎖定,取得資料表後所定 AdOpenOptimistic 3 樂觀鎖定,更新時才鎖定 AdOpenBatchOptimistic 4 批次樂觀鎖定,需下UPDATE Batch

37 使用LockType Rs.Source=“書籍” Rs.ActiveConnection=Cn
Rs.Cursortype=AdOpenDynamic Rs.LockType = AdOpenPessimistic Rs.open Rs.Open “書籍”,Cn, AdOpenDynamic, AdOpenPessimistic


Download ppt "資料庫程式設計 VB資料庫設計簡介 週次:4 建國科技大學 資管系 饒瑞佶."

Similar presentations


Ads by Google