Download Recordset Object(Cont.)

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Active Data Objects
By CSJue
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上, 其特點為充分支援網
路。
Microsoft Database Tech.(cont.)
Client
Server
Server
RDO
IIS
Server
ODBC
• OLE DB
– 由C++寫成, 可處理多種資料(如ODBC, 試算表, EMail, text, file…..), 並支援網路。
Microsoft Database Tech.(cont.)
• ADO(Active Data Objects)
– 由C寫成, 目的在使OLE DB用起來方便, 它用
ActiveX技術把OLE DB包起來。
Client/Data Consumer
DAO
RDO
ODBC
Relational data
ADO
ODBC OLE
Provider DB
Text
Data
Streams
The ADO Object Model
ActiveConnection
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
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.
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)
Connection object (cont.)
• Transactions
ObjConn.BeginTrans();
…………………..
If(ObjConn.Errors.Count=0)Then
ObjConn.CommitTrans
Else
ObjConn.RollbackTrans
End If
• Execute method
– 直接建立recordset object, 但只能得到一個唯
讀, 向前的游標
Connection object (cont.)
– Set objRst = objConn.Execute(CommandText,
RecordsAffected, Options);
數值
Command Text 的型式
1
2
Options
adCmdText
adCmdTable
4
adCmdStoredProc
Stored procedure 或
querydef
8
adCmdUnknown
未知的
原文
Table 名稱
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)
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”
Command object(cont.)
• Execute method
– pCommand->Execute(RecordsAffcted,
Parameters, Options)
• CreateParameter & Parameters Collection
Recordset Object
• 完成資料庫管理, 查詢的工作
• 建立Recordset object
– 設 定 好 A c t i v e Co n n ec t i o n , C u r s o r Ty p e ,
LockType, Source properties後, 呼叫Open
method, 或直接把它們傳給Open method-pRecordset->Open(source, activeconnection,
cursortype, LockType, options)
Recordset Object(Cont.)
– CursorType:
Recordset Object(Cont.)
– Options:
Recordset Object(Cont.)
• Bookmark(用Rst.supports(adBookmark)測
有無支援)
• Page
– 相關properties:AbsolutePage, PageSize,
PageCount…
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.
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)
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
Reference
• Http://www.microsoft/accessdev/articles/mo
ves202.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
Related documents