Presentation is loading. Please wait.

Presentation is loading. Please wait.

Active Data Objects By CSJue. Microsoft Database Tech. DAO (Data Access Objects) – 由 C++ 寫成, 架構在 JET database engine 上, 可以直接 存取和控制 database 。 ODBC(Open.

Similar presentations


Presentation on theme: "Active Data Objects By CSJue. Microsoft Database Tech. DAO (Data Access Objects) – 由 C++ 寫成, 架構在 JET database engine 上, 可以直接 存取和控制 database 。 ODBC(Open."— Presentation transcript:

1 Active Data Objects By CSJue

2 Microsoft Database Tech. DAO (Data Access Objects) – 由 C++ 寫成, 架構在 JET database engine 上, 可以直接 存取和控制 database 。 ODBC(Open Database Connectivity) – 以 C 寫成的 API, 為 MS 定的一個 Open standard 。 RDO(Remote Data Objects) – 由 C++ 寫成, 架構在 ODBC 上, 其特點為充分支援網 路。

3 Microsoft Database Tech.(cont.) OLE DB – 由 C++ 寫成, 可處理多種資料 ( 如 ODBC, 試算表, E- Mail, text, file…..), 並支援網路。 Client RDO Server IIS Server ODBC

4 Microsoft Database Tech.(cont.) ADO(Active Data Objects) – 由 C 寫成, 目的在使 OLE DB 用起來方便, 它用 ActiveX 技術把 OLE DB 包起來。 Client/Data Consumer RDO ODBC Data Streams ADO OLE DB ODBC Provider DAO TextRelational data

5 The ADO Object Model ActiveConnection

6 The ADO Object Model(Cont.) Connection object: Create a connection to a data provider. Recordset object: Create a set of records from a query. Command object: Execute SQL strings, stored procedures, or action queries Fields Collection: Recordset objects contain a collection of Field Objects that gives you access to column metadata

7 The ADO Object Model(Cont.) Parameters Collection: Contains all of the parameters associated with the Command object. Errors Collection:Connection objects contain an Errors collection. Properties Collection: Connection, Command, Recordset, and Field objects all include a Properties collection.

8 Connection object 主要在建立和維護 Command object, 使用 它來管理 Recordset object. 建立 Connection Object Set objConn = Server.CreateObject(“ADODB.Connection”) ObjConn.Open =”DSN=myDSN;UID=master;PWD=slave” Set objRst = objConn.Execute(CommandText, RecordsAffected, Options) Connection pooling - 60 sec(default) Connection timeout - 15 sec(default)

9 Connection object (cont.) Transactions ObjConn.BeginTrans(); ………………….. If(ObjConn.Errors.Count=0)Then ObjConn.CommitTrans Else ObjConn.RollbackTrans End If Execute method – 直接建立 recordset object, 但只能得到一個唯 讀, 向前的游標

10 Connection object (cont.) –Set objRst = objConn.Execute(CommandText, RecordsAffected, Options);

11 Connection object (cont.) IsolationLevel – 解決 Dirty Reads, Nonrepeatable Reads, Phantom Records 等同時性控制的問題 –adXactUnspecified(-1), adXactChaos(16), adXactBrowse (256), adXactReadUncommited (256), adXactCursorStability (4096), adXactReadCommitted (4096), adXactIsolated(1048576), adXactSerializable (1048576)

12 Command object 主要在達成 query 建立 Command object way1: Set objCmd = Server.CreateObject(“ADODB.Command”) Set objCmd.ActiveConnection = objConn ObjCmd.CommandText=”qryPhoneMessagesFor” way2:objCmd.ActiveConnection = “dsn=intranet ; database= intranet; uid=sa;pwd=..;” Or objCmd.ActiveConnection = ”DRIVER={Microsoft Access Driver(*.mdb)}; DBQ=c:\data\…..\XXX.mdb”

13 Command object(cont.) Execute method –pCommand->Execute(RecordsAffcted, Parameters, Options) CreateParameter & Parameters Collection

14 Recordset Object 完成資料庫管理, 查詢的工作 建立 Recordset object – 設定好 ActiveConnection, CursorType, LockType, Source properties 後, 呼叫 Open method, 或直接把它們傳給 Open method-- pRecordset->Open(source, activeconnection, cursortype, LockType, options)

15 Recordset Object(Cont.) –CursorType:

16 Recordset Object(Cont.) –Options:

17 Recordset Object(Cont.) Bookmark( 用 Rst.supports(adBookmark) 測 有無支援 ) Page – 相關 properties:AbsolutePage, PageSize, PageCount…

18 Recordset Object(Cont.) Filter –way1: 使用判斷標準常數 ~ adFilterNone(0), adFilterPendingRecords (1), adFilterAffectedRecords (2), adFilterFetchedRecords(3) – 使用比較字串來過濾 : objRst.Filter = “for = ‘mpc’ AND on = ‘Date’ ” GetRows: Fetches a block of rows into an array.

19 Recordset Object(Cont.) Adding Data Rst.Addnew Rst(“field1”) = value1 Rst(“field2”) = value2 …………. Rst.Update (EX. Addcust1.html) Updating data Rst(“field1”) = value1 …… rst.Update(EX. Update.asp)

20 Using ADO Objects in VC++ Using #import #import “C:\ProgramFiles\Common Files\System\ADO\MSADO10.DLL” no_namespace rename(“EOF”, “ADOEOF”) Initializing COM CoInitialize(NULL); CoUninitialize(); Creating ADO objects _ConnectionPtr pConn; hr = pConn.CreateInstance( “ADODB.Connection”); The ADO License Key

21 Reference Http://www.microsoft/accessdev/articles/m oves202.htm ~ ADO Programming(ASP) http://www.microsoft.com/data/ado/sams/ch 08.htm http://www.microsoft.com/data/ado Visual C++5 by David Bennett, part V 深入 Active Server Pages ~ ch15, 16, 17


Download ppt "Active Data Objects By CSJue. Microsoft Database Tech. DAO (Data Access Objects) – 由 C++ 寫成, 架構在 JET database engine 上, 可以直接 存取和控制 database 。 ODBC(Open."

Similar presentations


Ads by Google