สถาปัตยกรรม ActiveX Data Object (ADO) แนวทางของ Universal Data Access (UDA) สะดวกและง่ายขึ้น OLE DB เป็นตัวจัดการสามารถทำให้เข้าถึงข้อมูลได้ในทุก ๆ ที่ และ
การแก้ปัญหาการเข้าถึงข้อมูลแบบกระจาย วิธีการ Universal Data Storage คือ การใช้ฐานข้อมูลสัมพันธ์ (Relational Database) ในการเก็บข้อมูลทุก ๆ ชนิด เช่น Oracle , Sybase , Informix และ Microsoft เป็นต้น วิธีการ Universal Data Access (UDA) คือ การเข้าถึงข้อมูลในที่ที่ข้อมูลบันทึกอยู่ โดยอาศัย OLE DB เป็นตัวจัดการ OLE DB เป็นกลุ่มคำสั่งของ Component Object Model ( COM ) ที่เป็นทางเชื่อมต่อไปยัง Data provider กล่าวคือ ถ้าข้อมูลที่จะใช้นั้นอยู่บน Application ใด ๆ ก็ตามที่มี Data provider สำหรับ OLE DB ข้อมูลนั้นก็จะสามารถเข้าถึงได้โดยวิธีการ Universal Data Access
ActiveX Data Object (ADO) Object Objects ทั้ง 7 ของ ADO มีดังนี้ - Connection - Command - Parameter - Recordset - Field - Property - Error Collections ทั้ง 4 ของ ADO มีดังนี้ - Field - Properties - Parameter
ActiveX Data Object (ADO) Object Connection, Recordset และ Command เป็นส่วนที่สำคัญที่สุดและใช้งานมากที่สุด ทั้งสามตัวเป็น object ในระดับบนสุดไม่ขึ้นกับ object อื่น ๆ จึงสามารถสร้างและทำลาย object ทั้งสามนี้ได้โดยตรง สำหรับ Parameter object ทำงานเป็นอิสระก็จริงแต่เวลาจะนำมาใช้งาน ต้องใช้งานรุ่มกับ Command object เท่านั้น
ActiveX Data Object (ADO) Object (ต่อ) สำหรับ Field , Error และ Property object ไม่สามารถทำงานได้โดยตรง แต่จะสร้างได้เมื่อมี Object ระดับบนอยู่ก่อนแล้ว ใช้ Connection Object สำหรับสร้างการเชื่อมต่อระหว่างตัว Application กับ Database source ใช้ Command object เมื่อต้องการส่งคำสั่งที่จะกระทำกับ Data source เช่น Queries , Update เป็นต้น
ActiveX Data Object (ADO) Object (ต่อ) ใช้ Recordset Object ในการจัดการกับข้อมูลที่ได้มาจากคำสั่งที่ส่งโดย Command object ลักษณะของคำสั่งที่ส่งโดยใช้ Command object จะขึ้นอยู่กับชนิดของ OLE DB Provider ที่เชื่อมต่อ ใช้ parameter Object ก็ต่อเมื่อคำสั่งที่จะทำการส่งโดยใช้ Command object มี parameter อยู่ด้วยโดยจะกำหนดค่าและชนิดของ parameter ผ่านทาง parameter object
Connection object
Connection Object เป็น object ที่ใช้ติดต่อกับ Data source เป็น object ที่สามารถ run queries และทำ 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 รูปแบบของ Execute method มี 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 รายละเอียดของ Parameters CommandText คือตัวแปรชนิด String ที่มี SQL statement, stored procedure หรือชื่อ Table RecordsAffected คือตัวแปรชนิด Long ซึ่ง Data provider ส่ง กลับมา เพื่อแจ้งว่าคำสั่งที่ Execute ไปนี้มีผลกับ Record จำนวนเท่าไร Options คือ ตัวแปรชนิด Long ที่บ่งบอกชนิดของคำสั่ง ใน Command Text
การส่งคำสั่งไปยัง Data sources ด้วย Connection Object ชนิดของคำสั่งใน CommandText ค่าคงที่ ความหมาย adCmdText SQL Statement ธรรมดา adCmdTable ชื่อ Table adCmdStoredProc ชื่อ Stored procedure adCmdUnknown ไม่ทราบชนิดของ CommandText
Command Object
ใช้ส่งคำสั่งต่าง ๆ เช่น Command Object ใช้ส่งคำสั่งต่าง ๆ เช่น SQL Statement Stored Procedure ใช้การเชื่อมต่อที่มีอยู่แล้วโดยการสร้าง Connection Object หรือ สามารถสร้างการเชื่อมต่อใหม่ได้ด้วยตัวเอง
ActiveConnection 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 คือตัวแปรชนิด String ที่มี SQL statement , stored procedure หรือชื่อ Table RecordsAffected คือตัวแปรชนิด Long ซึ่ง Data provider ส่งกลับมา เพื่อแจ้งว่าคำสั่งที่ Execute ไปนี้มีผล กับ Record จำนวนเท่าไร Options คือ ตัวแปรชนิด Long ที่บ่งบอกชนิดของคำสั่ง ใน Command Text
ชนิดของคำสั่งใน CommandText ค่าคงที่ ความหมาย adCmdText SQL Statement ธรรมดา adCmdTable ชื่อ Table adCmdStoredProc ชื่อ Stored procedure adCmdUnknown ไม่ทราบชนิดของ CommandText
การใช้งาน Stored Procedure ใช้ Execute Method ต้องกำหนดชนิดของคำสั่งให้เป็น Stored Procedure ด้วยการใช้ค่าคงที่ adCmdStoreProc
ตัวอย่างโปรแกรม : การเรียกใช้ Stored Procedure การเรียกใช้ Stored Procedure ด้วยวิธี ADO Sp_TitlePub ในรูปแบบที่ไม่มีการส่ง parameter Sp_Isbn มีการส่ง parameter Sp_Insert_Titles เพิ่มข้อมูลลงในตาราง Titles