ActiveX Data Object ( ADO )

Download Report

Transcript ActiveX Data Object ( ADO )

สถาปัตยกรรม ActiveX Data Object (ADO)
• A D O
คือรู ปแบบใหม่ของการติดต่อกับฐานข้อมูลอีกวิธีหนึ่ง
• แนวทางของ Universal Data Access (UDA) สะดวกและง่ายขึ้น
• OLE DB เป็ นตัวจัดการสามารถทาให้เข้าถึงข้อมูลได้ในทุก ๆ ที่
และ
การแก้ปัญหาการเข้าถึงข้อมูลแบบกระจาย
• วิธีการ Universal Data Storage คือ การใช้ฐานข้อมูลสัมพันธ์ (Relational
Database) ในการเก็บข้อมูลทุก ๆ ชนิด
เช่น Oracle , Sybase ,
I n f o r m i x
และ M i c r o s o f t
เป็ นต้น
• วิธีการ Universal Data Access (UDA) คือ การเข้าถึงข้อมูลในที่ที่
ข้อมูลบันทึกอยู่
โดยอาศัย O L E D B เป็ นตัวจัดการ
• OLE DB เป็ นกลุ่มคาสัง่ ของ Component Object Model ( COM ) ที่
เป็ นทางเชื่อมต่อไปยัง Data provider
กล่าวคือ ถ้าข้อมูลที่จะใช้น้ นั
อยูบ่ น Application ใด ๆ ก็ตามที่มี Data provider สาหรับ OLE
DB ข้อมูลนั้นก็จะสามารถเข้าถึงได้โดยวิธีการ Universal Data Access
ActiveX Data Object (ADO) Object
O b j e c t s
- Connection
- Recordset
- Error
ทั้ง 7
- Command - Parameter
- Field
- Property
Collections ทั้ง 4 ของ ADO มีดงั นี้
-
Field
Properties
Parameter
Error
ของ A D O
มีดงั นี้
ActiveX Data Object (ADO) Object
•Connection, Recordset และ Command เป็ นส่ วนที่สาคัญที่สุดและใช้
งานมากที่สุด
ทั้งสามตัวเป็ น object ในระดับบนสุ ดไม่ข้ ึนกับ object
อื่น ๆ
จึงสามารถสร้างและทาลาย object ทั้งสามนี้ได้โดยตรง
•สาหรับ Parameter object ทางานเป็ นอิสระก็จริ งแต่เวลาจะนามาใช้งาน
ต้องใช้งานรุ่ มกับ Command object เท่านั้น
ActiveX Data Object (ADO) Object (ต่อ)
•สาหรับ Field , Error และ Property object ไม่สามารถทางานได้โดยตรง
แต่จะสร้างได้เมื่อมี O b j e c t
ระดับบนอยูก่ ่อนแล้ว
•ใช้ Connection Object สาหรับสร้างการเชื่อมต่อระหว่างตัว Application
กับ D a t a b a s e
s o u r c e
•ใช้ Command object เมื่อต้องการส่ งคาสัง่ ที่จะกระทากับ Data source
เช่น Q u e r i e s
,
U p d a t e
เป็ นต้น
ActiveX Data Object (ADO) Object (ต่อ)
•ใช้ Recordset Object
ในการจัดการกับข้อมูลที่ได้มาจากคาสัง่ ที่ส่ง
โดย Command object ลักษณะของคาสัง่ ที่ส่งโดยใช้ Command object
จะขึ้นอยูก่ บั ชนิดของ O L E D B P r o v i d e r ที่เชื่อมต่อ
•ใช้ parameter Object ก็ต่อเมื่อคาสัง่ ที่จะทาการส่ งโดยใช้ Command
object มี parameter อยูด่ ว้ ยโดยจะกาหนดค่าและชนิดของ parameter
ผ่านทาง p a r a m e t e r
o b j e c t
Connection object
Connection Object
•เป็ น o b j e c t ที่ใช้ติดต่อกับ D a t a s o u r c e
•เป็ น o b j e c t ใช้ในการเริ่ มต้นการเชื่อมต่อกับ D a t a s o u r c e
•เป็ น o bject ที่สามารถ run qu e ries และทา Transaction
Connection Object
• ใช้สาหรับสร้างส่ วนเชื่อมต่อกับฐานข้อมูล เพื่อส่ งคาสัง่ ต่าง ๆ ไป
Execute เพื่อให้ได้ผลลัพธ์ โดยการสร้างอ๊อบเจ็กต์ สาหรับการติดต่อ
แล้วใช้เมธอด Open เพื่อเปิ ดการเชื่อมต่อนั้น
Set Conn = Server.CreateObject(“ADODB.Connection”)
Conn.Open “MyDSN” , “admin” , “”
• บรรทัดแรกเป็ นการสร้างอ๊อบเจ็กต์สาหรับการเชื่อมต่อชื่อ Conn แล้ว
เปิ ดการเชื่อมต่อด้วย เมธอด Open โดยกาหนดชื่อ Data Source Name
เป็ น “MyDSN” และ เข้าติดต่อด้วย Log On name เป็ น “admin” ซึ่ง
ไม่มีรหัสผ่าน
การส่ งคาสั่ งไปยัง Data sources ด้ วย Connection Object
รู ปแบบของ E x e c u t e
m e t h o d มี 2 รู ปแบบ
1.
ไม่มีเซตของข้อมูลกลับมาจาก Data sources (non row-returning)
connection.Execute CommandText, RecordsAffected, Options
2.
มีเซตของข้อมูลกลับมาจาก Data sources (row-returning)
Set recordset = connection.Execute (CommandText, RecordsAffected, Options )
การส่ งคาสั่ งไปยัง Data sources ด้ วย Connection Object
รายละเอียดของ
P
a
r
a
m
e
t
e
r
s
CommandText
คือตัวแปรชนิด String ที่มี SQL statement,
stored
p r o c e d u r e หรื อชื่อ T a b l e
RecordsAffected คือตัวแปรชนิด Long ซึ่ ง Data provider ส่ ง
กลับมา เพื่อแจ้งว่าคาสั่งที่ Execute ไปนี้มีผลกับ
R
e
c
o
r
d
จานวนเท่าไร
Options
คือ ตัวแปรชนิด Long ที่
บ่งบอกชนิดของคาสัง่
ใน C o m m a n d T e x t
การส่ งคาสั่ งไปยัง Data sources ด้ วย Connection Object
ชนิ ดของคาสั่งใน
C
ค่าคงที่
adCmdText
adCmdTable
adCmdStoredProc
adCmdUnknown
o
m
m
a
n
d
T
e
x
t
ความหมาย
S Q L
S t a t e m e n t ธรรมดา
ชื่อ
T
a
b
l
e
ชื่อ S t o r e d
p r o c e d u r e
ไม่ทราบชนิ ดของ C o m m a n d T e x t
Command Object
• ใช้ส่งคาสัง่ ต่าง ๆ เช่น
– SQL Statement
– Stored Procedure
• ใช้การเชื่อมต่อที่มีอยูแ่ ล้วโดยการสร้าง Connection
Object หรื อ
• สามารถสร้างการเชื่อมต่อใหม่ได้ดว้ ยตัวเอง
ActiveConnection Property
เป็ น property ที่ใช้กาหนดลักษณะการเชื่อมต่อกับฐานข้อมูล
ใช้การเชื่อมต่อที่มีอยูแ่ ล้ว โดยกาหนดค่า ActiveConnection Property
เป็ น Connection Object ที่มีอยูแ่ ล้ว
สร้างการเชื่อมต่อใหม่ โดยกาหนด Connection String ให้กบั
ActiveConnection Property
การส่ งคาสัง่ ไปยัง Data Sources ด้วย Execute Method
อาจได้ผลลัพท์เป็ น record set, multiple record set หรื อไม่มี
record set กลับมา ขึ้นอยูก่ บั ว่าคาสัง่ ที่ส่งไปมีลกั ษณะอย่างไร
ถ้าเป็ น Select Statement ผลลัพท์จะได้เป็ น Record Set
กลุ่มคาสัง่ นั้นเป็ นกลุ่มของ Select Statement ผลลัพท์ที่ได้จะเป็ น
multiple record set
รู ปแบบการใช้งานจะเหมือนกับ Connection Object
รู ปแบบของ Execute Method มีอยู่ 2
รู ปแบบ
ไม่มีเซตของข้อมูลกลับมาจาก Data Sources (no row-return)
Connection.Execute CommandText, RecordAffected, Options
มีเซตของข้อมูลกลับมาจาก Data Sources (row-return)
Set Recordset = Connection.Execute(CommandText ,
RecordsAffected , Options)
Parameters ของ Execute Method
CommandText
RecordsAffected
ผล
Options
คือตัวแปรชนิด String ที่มี SQL statement ,
stored procedure หรื อชื่อ Table
คือตัวแปรชนิด Long ซึ่ง Data provider
ส่ งกลับมา เพื่อแจ้งว่าคาสัง่ ที่ Execute ไปนี้มี
กับ Record จานวนเท่าไร
คือ ตัวแปรชนิด Long ที่บ่งบอกชนิดของคาสัง่
ใน Command Text
ชนิดของคาสัง่ ใน CommandText
ค่าคงที่
adCmdText
adCmdTable
adCmdStoredProc
adCmdUnknown
ความหมาย
SQL Statement ธรรมดา
ชื่อ Table
ชื่อ Stored procedure
ไม่ทราบชนิดของ CommandText
การใช้งาน Stored Procedure
ใช้ Execute Method
ต้องกาหนดชนิดของคาสัง่ ให้เป็ น Stored Procedure ด้วยการใช้
ค่าคงที่ adCmdStoreProc
ตัวอย่างโปรแกรม : การเรี ยกใช้ Stored Procedure
การเรี ยกใช้ Stored Procedure ด้วยวิธี ADO
Sp_TitlePub ในรู ปแบบที่ไม่มีการส่ ง parameter
Sp_Isbn มีการส่ ง parameter
Sp_Insert_Titles เพิ่มข้อมูลลงในตาราง Titles