Seree Chinodom seree@buu.ac.th Connection Object Seree Chinodom seree@buu.ac.th Computer Science, BUU.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
สถาปัตยกรรมเทียร์ TIER ARCHITECTURE.
Advertisements

BC421 File and Database Lab
บทที่ 4 PHP with Database
เสรี ชิโนดม MS SQLServer 7 เสรี ชิโนดม
Microsoft Access อ.เล็กฤทัย ขันทองชัย Microsoft Access.
Create Table in MS Access
บทที่ 5 Visual C#.NET กับ ฐานข้อมูล
Chapter IV : สร้างการติดต่อ
เอกสารประกอบการบรรยาย เรื่อง ASP and Database
สถาปัตยกรรม ActiveX Data Object (ADO)
การเขียนคำสั่งเชื่อมต่อฐานข้อมูล
6. โครงสร้างข้อมูลแบบแฟ้ม
การใช้ PHP ติดต่อกับ Text File
ความรู้ทั่วไปเกี่ยวกับโปรแกรม Microsoft Office Access 2003
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
องค์ประกอบพื้นฐาน ของโปรแกรม Visual Basic
การส่งค่าและการเก็บค่า (ต่อ... )
ASP [ # 11 ] เตรียมความพร้อมก่อนติดต่อกับ Ms Access
Lecture no. 10 Files System
จดหมายเวียน (Mail Merge)
เอกสารประกอบการบรรยาย เรื่อง ASP and Database
ASP:ACCESS Database.
Seree Chinodom Recordset Object Seree Chinodom Computer Science, BUU.
ASP:ACCESS Database.
ASP กับฐานข้อมูล.
SCC : Suthida Chaichomchuen
Php with Database Professional Home Page :PHP
ขั้นตอนวิธี (Algorithm)
โปรแกรม Microsoft Access
บรรณารักษชำนาญการพิเศษ
Database Programming Exceed Camp #2 24 October 2005.
การออกแบบฐานข้อมูลเชิงสัมพันธ์
การเข้าถึงฐานข้อมูล ด้วยกลุ่ม object ADO.NET
การเชื่อมต่อฐานข้อมูล โดยใช้คอนโทรล SQLDataSource
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
หลักการวิเคราะห์และออกแบบระบบฐานข้อมูล
บทที่ 3 การวิเคราะห์ Analysis.
การใช้งาน ASP.NET 3.5 ด้านฐานข้อมูล
เขียนโปรแกรมเพื่อแสดงข้อมูลพนักงาน ด้วย ADO.NET vs. DataReader
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
บทที่ 3 การทำงานกับฟอร์ม (Form)
โปรแกรม Microsoft Access
บทที่ 3 การทำงานกับฟอร์ม (Form)
บทที่ 4 การทำงานกับรายงาน (Report)
การเขียนโปรแกรม PHP เชื่อมต่อกับ MySQL
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
ลิงค์ลิสต์ (Linked List)
การใช้ PHP ติดต่อกับ Text File
การใช้ PHP ติดต่อฐานข้อมูลMySQL
การใช้ PHP ติดต่อฐานข้อมูลผ่าน ODBC
ระบบบริหารงานวิจัยแห่งชาติ
โปรแกรม Microsoft Access
โปรแกรมฐานข้อมูลที่นิยมใช้
CHAPTER 12 SQL.
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Introduction to PHP, MySQL – Special Problem (Database)
ADO.NET (การบริหารและจัดการข้อมูล)
ASP เตรียมความพร้อมก่อนติดต่อกับ Ms Access การนำข้อมูลจากตารางมาแสดง
การสร้างและการใช้งานฟอร์ม
BCS 121 บท 5 การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
หลักการเขียนโปรแกรม ( )
โครงสร้างข้อมูลแบบลิงก์ลิสต์
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ซอฟต์แวร์ที่บริหารจัดการข้อมูลแบบกระจาย
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Week 5 While and Do-While loop (Control Structure 2)
1 Introduction to SQL กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
บทที่ 10 การเชื่อมต่อฐานข้อมูล
ใบสำเนางานนำเสนอ:

Seree Chinodom seree@buu.ac.th Connection Object Seree Chinodom seree@buu.ac.th Computer Science, BUU

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) Objects ทั้ง 7 ของ ADO มีดังนี้ - Connection - Command - Parameter - Recordset - Field - Property - Error Collections ทั้ง 4 ของ ADO มีดังนี้ - Field - Properties - Parameter

ActiveX Data Object (ADO) Connection, Recordset และ Command เป็นส่วนที่สำคัญที่สุดและใช้งานมากที่สุด ทั้งสามตัวเป็น object ในระดับบนสุดไม่ขึ้นกับ object อื่น ๆ จึงสามารถสร้างและทำลาย object ทั้งสามนี้ได้โดยตรง สำหรับ Parameter object ทำงานเป็นอิสระก็จริงแต่เวลาจะนำมาใช้งาน ต้องใช้งานรุ่มกับ Command object เท่านั้น

ActiveX Data Object (ADO) สำหรับ Field , Error และ Property object ไม่สามารถทำงานได้โดยตรง แต่จะสร้างได้เมื่อมี Object ระดับบนอยู่ก่อนแล้ว ใช้ Connection Object สำหรับสร้างการเชื่อมต่อระหว่างตัว Application กับ Database source ใช้ Command object เมื่อต้องการส่งคำสั่งที่จะกระทำกับ Data source เช่น Queries , Update เป็นต้น

ActiveX Data Object (ADO) ใช้ Recordset Object ในการจัดการกับข้อมูลที่ได้มาจากคำสั่งที่ส่งโดย Command object ลักษณะของคำสั่งที่ส่งโดยใช้ Command object จะขึ้นอยู่กับชนิดของ OLE DB Provider ที่เชื่อมต่อ ใช้ parameter Object ก็ต่อเมื่อคำสั่งที่จะทำการส่งโดยใช้ Command object มี parameter อยู่ด้วยโดยจะกำหนดค่าและชนิดของ parameter ผ่านทาง parameter object

Connection Object ทำหน้าที่ในการจัดเตรียมการเชื่อต่อระหว่าง ADO กับแหล่งข้อมูล เป็น object ที่ใช้ติดต่อกับ Data source เป็น object ใช้ในการเริ่มต้นการเชื่อมต่อกับ Data source เป็น object ที่สามารถ run queries และทำ Transaction ชั้นแรกสร้าง instance ชื่อ oConnของ connection object โดยมี ProIdคือ ADODB และ method CreateObject ของ Server object รูปแบบคำสั่งคือ Set oConn = Server.CreateObject(“ADODB.Connection)

ตัวอย่าง <%@Language = VBScript%> <HMTL> <HEAD> <TITLE>เพจทดสอบการใช้งานของข้อมูลในเรคอร์ดเซต</TITLE> </HEAD> <BODY> <H3>เพจทดสอบการใช้งานของข้อมูลในเรคอร์ดเซต</H3> <% dim oRSp set oRSp = Server.CreateObject("ADODB.recordset") oRSp.Open "Products", "DSN=Northwind" oRSp.MoveFirst Response.Write "บรรทัดถัดไปเป็นการเขียนข้อมูลจากเรคอร์ดเซตลงในเพจ:<BR>" Response.Write oRSp("ProductName") & "<BR><BR>"

Response.Write "บรรทัดถัดไปเป็นการเขียนข้อมูลจากตัวแปรที่เก็บข้อมูล:<BR>" Dim varPrdName varPrdName = oRSp("ProductName") Response.Write varPrdName & "<BR><BR>" Response.Write "บรรทัดถัดไปเป็นการใช้ If…Then ในการทำงานกับข้อมูล:<BR>" If oRSp("UnitsInStock") < 50 Then Response.Write "ปริมาณสินค้าเหลือน้อยกว่า 50 หน่วย<BR><BR>" Else Response.Write "ปริมาณสินค้าเหลือมากกว่า 50 หน่วย<BR><BR>" End If Response.Write "บรรทัดถัดไปเป็นการใช้ใช้ข้อมูลเป็นอาร์กิวเมนต์ในฟังก์ชั่น:<BR>" Response.Write Ucase(oRSp("ProductName")) & "<BR><BR>" oRSp.Close Set oRSp=Nothing %> </BODY> </HTML>

การระบุตำแหน่งการใช้งานเรคอร์ดในRecordset Move ใช้ในการเลื่อนเคอร์เซอร์ของเรคอร์ดพอยน์เตอร์ไปยังเรคอร์ดก่อนหน้าหรือย้อนกลับตามตัวเลขที่ระบุไว้หลัง Move MoveFirst ใช้ในการเลื่อนเรคอร์ดพอยน์เตอร์ไปยังเรคอร์ดแรกใน recordset ถ้าใช้ในการดึงข้อมูลจะได้เรคอร์ดแรก MoveLast ใช้ในการเลื่อนเรคอร์ดพอยน์เตอร์ไปยังเรคอร์ดท้ายสุดใน recordset ถ้าใช้ในการดึงข้อมูลจะได้เรคอร์ดสุดท้าย MovePrevious ใช้ในการเลื่อนเรคอร์ดพอยน์เตอร์ไปยังเรคอร์ดก่อนหน้าเรคอร์ปัจจุบัน แต่ถ้าเรอร์ดปัจจุบันเป็นเรคอร์แรกจะเกิดข้อผิดพลาด MoveNext ใช้ในการเลื่อนเรคอร์ดพอยน์เตอร์ไปยังเรคอร์ดถัดจากเรคอร์ปัจจุบัน แต่ถ้าเรอร์ดปัจจุบันเป็นเรคอร์สุดท้ายจะเกิดข้อผิดพลาด

ตัวอย่าง mvpointer.asp <HMTL> <HEAD> <TITLE>เพจทดสอบการทำงานกับเรคอร์ดต่างๆ ในเรคอร์ดเซต</TITLE> </HEAD> <BODY> <H3>เพจทดสอบการทำงานกับเรคอร์ดต่างๆ ในเรคอร์ดเซต</H3> <% Dim oRSe Set oRSe = Server.CreateObject("ADODB.recordset") oRSe.Open "Employees", "DSN=Northwind" oRSe.MoveFirst Response.Write "บรรทัดถัดไปเป็นนามสกุลของลูกจ้าง 3 เรคอร์ดแรกจากตาราง Employees :<BR>"

ตัวอย่าง mvpointer.asp Response.Write oRSe("LastName") & ", " oRSe.MoveNext Response.Write oRSe("LastName") oRSe.Close Set oRSe=Nothing %> </BODY> </HTML>

ตัวอย่าง การแสดงผลเป็นตารางข้อมูล <HMTL> <HEAD> <TITLE>การแสดงผลข้อมูลของ 5 เรคอร์ดแรกโดยใช้ตาราง</TITLE> </HEAD> <BODY> <H3>การแสดงผลข้อมูลของ 5 เรคอร์ดแรกโดยใช้ตาราง</H3> <% Dim oRSe, iCnt Set oRSe = Server.CreateObject("ADODB.recordset") oRSe.Open "Employees", "DSN=Northwind" oRSe.MoveFirst

ตัวอย่าง การแสดงผลเป็นตารางข้อมูล(ต่อ) Response.Write "<TABLE BORDER = '1'>" For iCnt = 1 To 5 Response.Write "<TR><TD>" & oRSe("FirstName") & "</TD>" Response.Write "<TD>" & oRSe("LastName") & "</TD></TR>" oRSe.MoveNext Next %> </TABLE> </BODY> </HTML>

การแสดงผลข้อมูลทุกเรคอร์ดจากrecordset การแสดงผลข้อมูลทุกระเบียนจาก recordset จะใช้ฟังก์ชัน EOF (End Of File) ซึ่งใช้สำหรับการตรวจสอบการสิ้นสุดของเรคอร์ดใน recordset โดยค่าของฟังก์ชันนี้จะเป็น “true” เมื่อมีการเลื่อนเรคอร์ดพอยน์เตอร์เลยจากเรคอร์สุดท้ายไป ใช้ฟังก์ชัน EOF ร่วมกับ Do while …loop ดังนี้ Do while NOT oRS.EOF ‘คำสั่งประมวลผล … oRS.MoveNext Loop

ตัวอย่าง การแสดงผลข้อมูลทุกเรคอร์ด <HMTL> <HEAD> <TITLE>การแสดงผลข้อทุกเรคอร์โดยใช้ EOF </TITLE> </HEAD> <BODY> <H3>การแสดงผลข้อมูลทุกเรคอร์ดโดยใช้ EOF </H3> <% Dim oRSe Set oRSe = Server.CreateObject("ADODB.recordset") oRSe.Open "Employees", "DSN=Northwind" oRSe.MoveFirst Response.Write "<TABLE BORDER = '1'>"

ตัวอย่าง การแสดงผลข้อมูลทุกเรคอร์ด(ต่อ๗ Dim iCnt iCnt = 0 Do while NOT oRSe.EOF iCnt = iCnt + 1 Response.Write "<TR><TD>" & iCnt & "</TD>" Response.Write "<TD>" & oRSe("FirstName") & "</TD>" Response.Write "<TD>" & oRSe("LastName") & "</TD></TR>" oRSe.MoveNext Loop Response.Write "</TABLE><BR>" %> </BODY></HTML>

การแสดรายละเอียดของฟิลในrecordset oRS.Fields(“FieldName”) หรือ ถ้าไม่ทราบชื่อฟิลด์ oRS.Fields(#) โดยที่ # หมายถึงเลขลำดับในการอ้างถึงฟิลด์ซึ่งเริ่มต้นที่ 0,1,2,... ถ้าต้องการนับชื่อฟิลด์ทั้งหมดในrecordset ใช้คำสั่งดังนี้ oRS.Fields.Count

ตัวอย่าง <HTML> <HEAD> <TITLE>การอ่านรายละเอียดของฟิลด์ต่างๆ ในตาราง</TITLE> </HEAD> <BODY> <H3>การอ่านรายละเอียดของฟิลด์ต่างๆ ในตาราง Employees</H3> <% Set oRS=Server.CreateObject("ADODB.Recordset") oRS.Open "Employees", "DSN=Northwind" Response.Write "<TABLE BORDER=1>" For Each ofield in oRS.Fields Response.Write "<TR><TD>" & ofield.name & "</TD>" Response.Write "<TD>" & ofield.type & "</TD></TR>" Next Response.Write "</TABLE>" %>

ตัวอย่าง การนำข้อมูลจาก recordset แสดงใน List box <HTML> <HEAD> <TITLE>การใช้ข้อมูลจากเรคอร์ดเซตกับ List Box</TITLE> </HEAD> <BODY> <H3>การใช้ข้อมูลจากเรคอร์ดเซตกับ List Box</H3> <P>List of categories from categories table</P><BR> <% Dim oRSc Set oRSc=Server.CreateObject("ADODB.Recordset") oRSc.Open "Categories", "DSN=Northwind" oRSc.MoveFirst %>

<FORM METHOD="get" ACTION="ResLst.asp"> <SELECT NAME="Categories" SIZE="1"> <% Do While NOT oRSc.EOF Response.Write "<OPTION SELECTED VALUE='" & oRSc("CategoryName") & "'>" Response.Write oRSc("CategoryName") & "</OPTION>" oRSc.MoveNext Loop oRSc.Close Set oRSc=Nothing %> </SELECT> <INPUT TYPE="submit"> </FORM> </BODY> </HTML>