วันอาทิตย์ที่ 7 กุมภาพันธ์ พ.ศ. 2553

การเชื่อมต่อฐานข้อมูล

ก่อนที่จะใช้งาน ADO เราจำเป็นต้องสร้าง Data Source Name (DSN) เสียก่อน โดย
เซ็ต Open Database Connectivity (ODBC) ให้เชื่อมไปยังฐานข้อมูลที่เราเตรียมไว้ ซึ่งขั้นตอนการเซ็ตมีดังนี้
1. เปิด Control Panel --- > 32 bit ODBC ของเครื่องที่ทำ Web Server
2. เลือกแท็บ System DSN แล้วคลิกปุ่ม Add
3. เลือกไดร์ฟเวอร์ของฐานข้อมูล ที่ต้องการเชื่อมต่อ ในที่นี้ เลือก Microsoft Access driver [*.mdb] แล้วคลิก Finish
4. กรอกรายละเอียดในช่อง Data Source Name ให้ตั้งชื่อของ DSN แล้วคลิกที่ปุ่ม Select เลือก MS Access 97 (*mdb) ตามต้องการ
การใช้งาน Connection Object
การที่จะติดต่อกับฐานข้อมูล เราต้องสร้างส่วนการเชื่อมต่อ หรือ Connection ก่อน โดยสร้างออบเจ็กต์สำหรับ การติดต่อ แล้วใช้เมธอด Open เปิดการเชื่อมต่อ เช่น
Set Conn=Server.CreateObject(“ADODB.Connection”)
Conn.Open “MYDSN”
บรรทัดแรก เป็นการสร้างอบบเจ็กต์สำหรับการติดต่อชื่อ Conn ไว้ก่อน จากนั้น ใช้เมธอด Open เปิดการเชื่อมต่อกับ Data Source Name ชื่อ MYDSN


การใช้งาน Recordset Object
เมื่อสร้างออบเจ็กต์การติดต่อแล้ว เราสามารถสร้าง Record Object เพื่อเอ็กซ์คิวต์ คำสั่งในการดึงข้อมูลจากฐานข้อมูลมาได้ เช่น
Set Rs=Server.Create(“ADODB.Recordset”)
Rs.Open “Select * From mytable Where id < 10”

เพื่อให้เกิดความเข้าใจ ถึงกระบวนการทำงาน ให้ศึกษาตามตัวอย่างด้านล่างนี้ ซึ่งแสดงการดึงข้อมูลจากฐานข้อมูล เพื่อแสดงออกยังตาราง
ตัวอย่าง 05_show.asp
<%@ LANGUAGE="VBSCRIPT" %>


แสดงการดึงข้อมูลจากฐานข้อมูล



แสดงการดึงข้อมูลจากฐานข้อมูล


<%
‘เชื่อมต่อฐานข้อมูล
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "DATASOURCE"
Set Rs=Server.CreateObject("ADODB.Recordset")
Rs.Open " Select * From info ",Conn
‘ ตรวจสอบ record
If Rs.EOF Then
Response.Write "ไม่พบข้อมูลเลยน่ะ"
Else
%>



<%’ สร้างหัวตาราง
For i=0 to Rs.Fields.Count-1
Response.Write " "
Next
%>

<%
‘ สร้างตัวตารางและแสดงผลข้อมูล
Do While Not Rs.EOF
Response.Write " "
Response.Write " "
Response.Write " "
Response.Write " "
‘ เลื่อนไปยังเร็คคอร์ดต่อไป
Rs.MoveNext

‘วนซ้ำไปเรื่อย ๆ
Loop
Response.Write "
"&Rs(i).Name&"
"&Rs("id")&" "&Rs("Fname")&" "&Rs("Lname")&" "&Rs("position")&"
"
‘ ปิดการเชื่อมต่อทั้งหมด
Rs.Close
Conn.Close
End If
%>


เมื่อเราทำการ Run โปรแกรม 05_show.asp แล้วจะปรากฎดังภาพด้านล่าง นี้ ซึ่งตัวอย่างของโปรแกรมตัวนี้ สามารถนำไปเปิดดูกับฐานข้อมูลอะไรก็ได้

ภาพแสดงตัวอย่าง 05_show.asp

If Rs.EOF Then เป็นการแสดงพรอพพอตี่ EOF ของ recordset Object ในการตรวจสอบเร็คคอร์ดเซ็ต ที่ได้ว่าพบหรือไม่ EOF หมายถึง เคอร์เซอร์ ของเร็คคอร์ดอยู่ตำแหน่งใต้สุดของเร็คคอร์ด ทั้งหมด
Do While Not Rs.EOF ให้ทำการตรวจสอบข้อมูลไปเรื่อย ๆ จนกว่าจะหมดเร็คคอร์ด
Rs.MoveNext เป็นการใช้เมธอด MoveNext ของ Recordset Object ในการเลื่อนเคอร์เซอร์ให้ไปอยู่ในเร็คคอร์ดถัดไปเรื่อย ๆ จนกระทั้งหมดทั้งเร็คคอร์ด

ปฎิบัติการรีเลชันแนลกับ SQL
แนวคิดของรีเลชันแนล คือ ความสัมพันธ์ของแนวคิดหลักและพื้นฐานจริง ๆ ของ รีเลชันแนล จึงมาอยู่ที่ความสัมพันธุ์ของข้อมูล ไม่ว่าเรากำลังระบบฐานข้อมูลจากโปรแกรมตัวใดก็ตาม ส่วนสำคัญที่เราจะสร้างและใช้งานระบบฐานข้อมูล คือ ภาษาที่สั่งการ เช่น SQL เป็นต้น ซึ่งมีโครงสร้างทางภาษาใกล้เคียงภาษามนุษย์ ซึ่งง่ายต่อการใช้งานมาก
ฐานข้อมูล คือ เอกสารที่เก็บรวบรวมข้อมูลต่าง ๆ ไว้ในลักษณะที่เป็นตาราง โดยข้อมูลจะถูกจัดเก็บเป็นรายการรวมเรียกว่าแถว (row) และในแต่ละแถวหรือแต่ละรายการ จะประกอบไปด้วยคอลัมน์ (column) เพื่อจำแนกประเภทของข้อมูล ตัวอย่างด้านล่างนี้ เป็นตัวอย่างฐานข้อมูลรายชื่อนักศึกษา ซึ่งประกอบด้วยรหัสประจำตัว ชื่อ สกุล และโปรแกรมวิชา
ตารางแสดงฐานข้อมูลรายชื่อนักศึกษา
รหัสประจำตัว
ชื่อ
นามสกุล
โปรแกรมวิชา
001
สมพงษ์
เลือดทหาร
สังคมศึกษา
002
สมบัติ
มักน้อย
สังคมศึกษา
003
พิบูลย์
สมประสงค์
ภาษาไทย
004
ณัฐนันท์
โสจิสกุล
นิเทศศาสตร์
005
วรรณวิสา
พาณิชเจริญ
อังกฤษศึกษา
006
กนกมาศ
สัมพันธ์
วิทยาศาสตร์

ในการสร้างฐานข้อมูลนั้น ที่นิยมใช้กัน คือ Microsoft Access ส่วนขั้นตอนในการสร้างนั้น ทุกคนสามารถสร้างกันได้อยู่แล้ว จะไม่ขอกล่าวรายละเอียดในที่นี่มากนัก
ฐานข้อมูลที่เราสร้างขึ้นมาใหม่นี้ ประกอบไปด้วยตารางชื่อ information เพียงตารางเดียวเท่านั้น เมื่อเราต้อการเพิ่มตาราง ข้อมูลเข้าไป เพื่อบันทึก ว่านักศึกษาคนนั้นอยู่ห้องไหน มีอาจารย์ที่ปรึกษาชื่ออะไร เราก็สร้างตารางขึ้นมาอีกหนึ่งตาราง แต่แทนที่เราจะต้องบันทึกชื่อ รามสกุลของนักศึกษาใหม่ เราก็บันทึกเพียงรหัสประจำตัวเทานั้น ซึ่งตารางทั้งสองนี้จะมีความสัมพันธ์กันอยู่ที่รหัสประจำตัว คือ เมื่อการเปลี่ยนแปลงข้อมูลนักศึกษา ตารางที่แสดงห้อง ก็จะแสดงข้อมูลที่มีการเปลี่ยนแปลงของนักศึกษาคนนั้นด้วย

ไม่มีความคิดเห็น:

แสดงความคิดเห็น