270 likes | 403 Views
新視覺化程式設計開發工具 主題 : Active X Data Object. 國立台灣師範大學 工業教育研究所 戴建耘教授 龍清榮主任 吳美華組長 主要參考書目 Microsoft Office 97 Visual Basic 自學手冊(碁峰) 微軟 Intranet 原始程式解密 -Vision Module (恆逸) Visual Basic 與 SQL Server (松崗) Microsoft Visual Basic 6.0 程式開發手冊(松崗)
E N D
新視覺化程式設計開發工具主題:Active X Data Object 國立台灣師範大學 工業教育研究所 戴建耘教授 龍清榮主任 吳美華組長 主要參考書目 Microsoft Office 97 Visual Basic 自學手冊(碁峰)微軟Intranet原始程式解密-Vision Module(恆逸) Visual Basic 與 SQL Server(松崗) Microsoft Visual Basic 6.0 程式開發手冊(松崗) Microsoft Visual Basic 6.0 Reference Library(松崗)
本章重點 • ADO 概述 • ADO 的優點 • ADO 的物件架構 • ADO 的資料取用方式
ASP 的資料庫存取環境 ADO 物件 • 最重要的資料庫存取物件之一 • 簡化了許多操作的步驟 • 提供更快速,更有效率的資料存取方式。
ADO 的優點 • 使 用 簡 易:簡化資料庫連結。 • 速 度 快:直接和ODBC 或OLE DB 的環 境結合,速度更快,更有效率。 • 耗用記憶體少:大幅度縮減記憶體的需求。 • 耗用磁碟空間少:DLL 佔用的空間減少,在 存取過程中對硬碟空間的 需求也降低 • 物件的類別少
ADO 適於建立主從式架構及web 應用的原因 • 可獨立產生物件。 • 能進行批次處理。 • 支援Stored Procedures ,並能運用傳出及傳入參數,同時接受傳回值。 • 提供不同的類型的Cursor ,同時也支援後端Cursor 的使用。 • 先進的資料集快取管理。 • 能夠限制資料傳回的列數。 • 可以存取Stored Procedure 或是批次敘述傳回的多重資料集。 • 提供多執行緒(Threaded)的物件處理環境,提供有效率的伺服器應用。
ADO 的物件架構 • 在ADO 主要處理的物件包括: • Connection:代表連結到某個資料來源或 是OLE DB 服務程式的環境。 範例:Set Conn = Server.CreateObject("ADODB.Connection") • Command:存放特定命令的定義。 範例:Set rs=conn.Execute("SELECT * FROM Employees") • Recordset:物件代表某個查詢結果所傳回 來的完整記錄構成的集合。 範例: Set Rs = Server.CreateObject ("ADOdb.Recordset") Rs.Open "Select * From Students"
Connection物件基本動作(一) • Connectionstring 、Connectiontimeout 以及Mode 等屬性,在開啟連結環境之前先行設定環境。 • 利用Defaultdatabase 屬性來安排預設的資料庫。 • 利用Isolationlevel 屬性來安排交易進行時隔離的層級。
Connection物件基本動作(二) • 利用Provider 屬性決定OLE DB 的服務程式。 • 利用Open 及Close方法來建立,及移除和資料來源的連結。 • 利用Execute 方法執行SQL 命令。 • 利用Command timeout 決定命令執行時過期的時間。
Connection物件基本動作(三) • 利用Begintrans 、Committrans 以及Rollbacktrans 等方法,以及Attributes 屬性來安排交易的進行。 • 利用Errors 群集取得資料來源所傳回的錯誤訊息。 • 利用Version 取得ADO的版本相關資料。
Command物件 • CreateObject:建立ADODB.Command 物件、設定Command 物件的屬性,決定要執行的SQL 敘述、等待命令回應的時間、利用那一個連結環境等等 • 用Execute 命令執行 • 範例: set cmd=Server.CreateObject(“ADODB.Command”) set rs =cmd.Execute(“SQL指令”)
Field 物件(一) • Name屬性取得欄位的名稱。 • Value 屬性來更改或檢視Recordset 的內容。 • Type 、Precision 、以及NumericScale 屬性來取得欄位的基本性質。 • DefinedSize屬性取得某個欄位宣告的大小。 • 範例:Recordset.Fields.Item("Name") Recordset.Fields.Item(0)
Field 物件(二) • ActualSize 屬性取得欄位內容的實際大小。 • Attributes 屬性及Properties 群集決定欄位所能夠進行的操作或功能。 • AppendChunk 及Getchunk 方法來處理儲存有大量字元或是二進位資料的欄位。 • OriginalValue 及UnderlyingValue 屬性在批次更新的過程中解決資料衝突的問題。
Recordset 物件 • 處理的紀錄所構成的集合 • open(取得記錄) • Movefirst( 移至第一筆) • MoveLast( 移至最後一筆) • MoveNext( 移至下一筆) • MovePrevious( 移至前一筆) • Move( 依指定順序移動至指定的記錄)
Recordset 物件屬性 • Filte:決定目前記錄的尋找方式。 • BOF和EOF 屬性判斷是否到達記錄集的開頭或結尾。
1.用Recordset 物件的AddNew 方法加入空白新記錄:Rsmajors.Addnew 2.並設定記錄的內容: Rsmajors("Majorid")= Request("Majorid") Rsmajors("Description")= Request("Description") 3.用Update 方法將資料儲存進資料庫 Rsmajors.Update ADO 的資料取用方式(增加記錄)
設定好更新值後利用Update方法 儲存改變 Rsmajors("Description") = " 自然科學 " Rsmajors.Update ADO 的資料取用方式(更新記錄)
ADO 的資料取用方式刪除記錄 • 用Recordset 物件的Delete 方法來刪除目前的記錄 • Rsstudents.Delete • 刪除後必須利用Move 方法將記錄指標移到下一筆記錄 • Rsstudents.MoveNext • 否則目前記錄的指標會指向空的記錄。
紀錄指標移動的方法 • Move 依據指定紀錄樹移動指標 • MoveNext 移動至下一筆 • MovePrevious 移動至上一筆 • MoveFirst 移動至第一筆 • MoveLast 移動至最後一筆
ASP資料庫實作連接資料庫範例 <HTML> <HEAD> <TITLE>ADO元件讀取資料庫範例<TITLE> </HEAD> <BODY> <% set conn=server.CreateObject(“ADODB.Connection”) Conn.Open “datascource” Set RS=Conn.Execute(“Select * FROM customer”) %> </BODY> </HTML>
1 2 3 InterDev實作(一) 1
Q & A • Q:ADO 的優點,請列舉三種? • A:使 用 簡 易 • 速 度 快 • 耗用記憶體少
Q & A • Q:ADO 主要處理的物件,有 • 那三種? • A:Connection • Command • Recordset
Q & A • Q:在ADO中Connection物件,利 • 用什麼 方法執行SQL 命令? • A:Execute
Q & A • Q:在ADO中代表連結到某個資 • 料來源或是OLE DB 服務程 • 式環境的物件為何? • A:Connection
Q & A • Q:在ADO中存放特定命令的定義 • 物件為何? • A:Command