เทคโนโลยีล่าสุด ได้รับความนิยมสูงสุด Active Server Pages (ASP)
เทคโนโลยีทางด้านเว็บแอพพลิเคชันฐานข้อมูลของไมโครซอฟท์ได้ถูกพัฒนาอย่างต่อเนื่อง และเพื่อเป็นการปรับปรุงความสามารถของ IDC โดยลดความซับซ้อน ตลอดจนเพิ่มความยืดหยุ่นให้มีมากขึ้น ASP (Active Server Pages) จึงถือกำเนิดขึ้นมาและทำงานได้กับ ISS 3.0 ซึ่งเป็นแอ็ดออนต่างหากที่สามารถ ดาวน์โหลดได้ฟรีจากเว็บไซต์ www.mircrosoft.com และได้ถูกรวมเข้ากับ ISS 4.0 ในชุด Windows NT Option Pack 1.0 หรือ PWS (Personal Web Server) เวอร์ชัน 4.0 จนกระทั่งปัจจุบันที่มีมาพร้อมกับ ISS 5.0 สำหรับ Windows 2000 รุ่น Server ขึ้นไป หรือ PWS เวอร์ชัน 5.0 สำหรับ Windows 2000 รุ่น Professional ADO (Active Data Objects) ทำหน้าที่ในการเชื่อมต่อกับฐานข้อมูลเป็นหลัก มีการคิดค้นมาตรฐานกลางในการติดต่อกับฐานข้อมูลให้ครบทุก ๆ ฐานข้อมูล เรียกว่า universal data access ประโยชน์ที่เห็นได้ชัดเจนคือ หากมีการเปลี่ยนฐานข้อมูลก็ไม่จำเป็นที่จะต้องเขียนสคริปต์ เพื่อติดต่อกับฐานข้อมูลขึ้นใหม่ทั้งหมด เพียงแต่เปลี่ยนสคริปต์ให้ตรงตามมาตรฐานการติดต่อฐานข้อมูล เท่านั้นซึ่งมีรายละเอียด ดังต่อไปนี้
ODBC และ DSN มาตรฐานการต่อต่อกับฐานข้อมูลที่นิยมกันเป็นอย่างมากคือ ODBC (Open Database Connectivity) ซึ่งเป็นตัวกลางทำหน้าที่เชื่อมต่อระหว่างเว็บแอพพลิเคชันและฐานข้อมูล โดยอาศัยไดรเวอร์ (Driver) ของแต่ละฐานข้อมูลเป็นช่องทางในการติดต่อข้อดีของการใช้ ODBC คือ สามารถสร้างการเชื่อมต่อ และกำหนดให้เป็นชื่อ DSN (Data Source Name) ไว้ก่อน เพื่อใช้อ้างอิงในการเข้าถึงฐานข้อมูลได้ ดังนั้น หากมีการเปลี่ยนแปลงข้อมูลเป็นผลิตภัณฑ์ตัวอื่น แต่ยังคงสร้าง DSN ให้เป็นชื่อเดิมจะสามารถเข้าถึง ข้อมูลในลักษณะเดียวกันนี้ได้ ส่วนข้อเสียคือความล่าช้าที่เกิดจากการแปลงคำสั่งไปมาผ่านตัวกลางนั่นเอง
OLEDB OLEDB จะเกี่ยวข้องกับสิ่งสำคัญ 2 ส่วนได้แก่ Consumers คือ ผู้ใช้ข้อมูลซึ่งในที่นี้หมายถึง แอพพลิเคชันที่เขียนมาจากภาษาต่างๆ นั่นเอง Providers คือ ผู้ให้ข้อมูล โดยจะมี OLEDB Provider ของแหล่งเก็บข้อมูลในแต่ละประเภท ทำหน้าที่ติดต่อกับแหล่งเก็บข้อมูลเหล่านั้น การแบ่งหน้าที่มีข้อดีคือช่วยให้การเขียนสคริปต์หรือโปรแกรมง่ายขึ้น เพราะเป็นการเขียน เพื่อคุยกับ ADO หรือ OLEDB ให้ตรงตามมาตรฐานเท่านั้น OLEDB จะทำหน้าที่คุยกับ Provider เพื่อต่อต่อ กับแหล่งเก็บข้อมูลเอง แล้วจึงส่งข้อมูลที่ต้องการกลับมายังแอพพลิเคชันหรือในทางตรงกันข้ามก็ตาม นั่นย่อม หมายถึงว่านักพัฒนาโปรแกรมเพียงเรียนรู้กฎเกณฑ์ที่ใช้ในการเข้าถึงข้อมูลให้ตรงตามรูปแบบเท่านั้น หากมี การเปลี่ยน Provider เพื่อติดต่อกับแหล่งเก็บข้อมูลตัวใหม่ ก็ไม่จำเป็นที่จะต้องทำการเปลี่ยนแปลงโค้ดใหม่ ทั้งหมด ซึ่งเป็นการแสดงให้เห็นถึงความสามารถของ ADO หรือ OLEDB ที่ได้มีการกำหนดมาตรฐานเพื่อใช้ ในการติดต่อกับแหล่งเก็บข้อมูลไว้เป็นอย่างดี สำหรับ OLEDB Provider ที่มีมาพร้อมกับ ADO 2.5 ซึ่งเป็นเวอร์ชันล่าสุด แสดงดังตาราง
Providers |
คำอธิบาย |
Jet OLEDB 4.0 |
สำหรับฐานข้อมูล Microsoft Access |
SQL Server |
สำหรับฐานข้อมูล Microsoft SQL Server |
Oracle |
สำหรับฐานข้อมูล Oracle |
Simple Provider |
สำหรับ text file |
ODBC Drivers |
สำหรับแหล่งข้อมูลที่เชื่อมต่อกับ ODBC |
Microsoft Directory Services |
สำหรับ Windows 2000 Directory Services |
MSDataShape |
สำหรับข้อมูลประเภท Hierarchical |
Site Server search |
สำหรับการเข้าถึงรายการของการค้นหาจาก Site server |
Internet Publishing |
สำหรับการเข้าถึง Web Server |
OLAP Services |
สำหรับ Microsoft OLAP services |
DTS Packages |
สำหรับ SQL Server Data Transformation Services |
DTS Flat File |
สำหรับ SQL Server Data Transformation Services แบบ Flat file Manager |
จากตาราง จะพบว่ามี OLEDB Provider สำหรับ ODBC ไว้ด้วย สาเหตุที่เป็นเช่นนี้เพราะว่า จะช่วยให้การติดต่อกับแหล่งเก็บข้อมูลของ OLEDB ผ่านไปยัง ODBC ได้ มีประโยชน์คือช่วยให้ไม่ต้อง เปลี่ยนแปลง ขั้นตอน ต่าง ๆ มากนักสำหรับแอพพลิเคชันที่เคยใช้ ODBC เชื่อมต่อกับฐานข้อมูลอยู่ก่อนหน้าแล้ว นอกจากนี้ยังช่วยให้ OLEDB สามารถเชื่อมต่อกับฐานข้อมูลอื่น ๆ ที่ไม่มี OLEDB Provider แต่มี ODBC Drivers ได้
วิธีการเชื่อมต่อกับแหล่งข้อมูล
ในการทำงานของเว็บแอพพลิเคชันเพื่อติดต่อกับแหล่งเก็บข้อมูล สิ่งที่ต้องทำเป็นอันดับแรกคือ การสร้างการเชื่อมต่อกับแหล่งเก็บข้อมูล ซึ่งมีอยู่หลายวิธีการดังต่อไปนี้
DSN เป็นการสร้าง Data Source ให้อยู่ในรูปแบบของ File DSN หรือ System DSN เพื่อให้การเชื่อมต่อกับฐาน ข้อมูลสามารถจัดการและบริหารได้จากศูนย์กลางด้วย ODBC Data Source Administrator เพียงแห่งเดียว
Connection String เป็นการสร้างการเชื่อมต่อกับแหล่งเก็บข้อมูลให้อยู่ในส่วนของสติงคำสั่ง ประโยชน์คือสตริงคำสั่งจะถูกเก็บอยู่ ภายในเว็บเพจ ทำให้ไม่ต้องคอนฟิกเพิ่มเติมให้กับสภาพแวดล้อมของเว็บเซิร์ฟเวอร์ ส่วนข้อเสียคือเมื่อมีเว็บเพจมากขึ้นจะทำให้การจัดการกับการเชื่อมต่อเหล่านั้นยากขึ้นไปเป็นลำดับ สำหรับปัญหา ในส่วนนี้สามารถแก้ไขได้โดยการเขียนสคริปต์ให้มีระบบด้วยการสร้างสตริงคำสั่งในการเชื่อมต่อกับแหล่งเก็บข้อมูลให้อยู่ใน ไฟล์แยกต่างหาก และสามารถถูกเรียกใช้งานจากเว็บเพจอื่น ๆ ได้ด้วยวิธีการ Include ไฟล์เข้าไปเท่านั้นเอง
Data Link File เป็นการสร้างไฟล์ที่บรรจุรายละเอียดในการเชื่อมต่อกับแหล่งเก็บข้อมูลทิ้งไว้ก่อน จากนั้นเมื่อเว็บเพจ ต้องการ เข้าถึงแหล่งเก็บข้อมูลนั้น ๆ ก็สามารถนำไฟล์ที่ได้สร้างนี้ไว้มาใช้
รู้จักและการใช้ ActiveX Data Objects 2.5
รู้จักกับ Connection Object
เป็นออบเจ็กต์ที่ใช้การเชื่อมต่อกับแหล่งเก็บข้อมูล โดยผ่านตัวกลางอย่าง ODBC หรือ OLEDB Provider ทั้งนี้สามารถระบุถึง User และ Password ซึ่งใช้ในการรักษาความปลอดภัยของระบบ รวมถึง รายละเอียดทั่วไปของการติดต่อนั้น ๆ รู้จักกับ Command Object เป็นออบเจ็กต์ที่สร้างขึ้นเพื่อเก็บคำสั่งที่ใช้ในการเข้าถึงแหล่งเก็บข้อมูล สามารถรับค่าพารามิเตอร์ รวมทั้งกำหนดรายละเอียดเกี่ยวกับพารามิเตอร์ เช่น ประเภท หรือความยาวของข้อมูล และเมื่อมีการทำคำสั่งแล้ว เกิดผลลัพธ์ ยังสามารถส่งค่าที่ได้นั้นกลับมาใช้งานต่อไปได้อีกด้วย รู้จักกับ Recordset Object เป็บออบเจ็กต์ที่สำคัญในการทำงานของเว็บแอพพลิเคชันฐานข้อมูล เพราะออบเจ็กต์ Recordset นี้จะบรรจุผลลัพธ์ของกลุ่มเร็คคอร์ดของฐานข้อมูลซึ่งได้จากการทำคำสั่งที่เลือกสรรมา กลุ่มของเร็คคอร์ดเหล่านี้ สามารถเข้าถึงข้อมูลได้โดยตลอดทั้งทิศทางไปข้างหน้า ย้อนกลับ อยู่ในตำแหน่งแรกสุด หรือท้ายสุดของเร็คคอร์ดได้ รวมถึงการกรอง และค้นหา ตลอดจนจดจำตำแหน่งที่ต้องการเพื่อให้สามรถเข้าถึงเร็คคอร์ดนั้นๆ ได้ในเวลาอันรวดเร็ว รู้จักกับ Record Object เป็นออบเจ็กต์ใหม่ที่เพิ่มเข้ามาใน ADO 2.5 ทำหน้าที่คล้ายกับออบเจ็กต์ Recordset แต่จะเข้าถึง ข้อมูลอื่น ๆ นอกเหนือจากฐานข้อมูล เช่น ระบบไฟล์ หรือระบบอีเมลล์ ซึ่งอยู่ในรูปแบบกึ่งโครงสร้างหรือ semi-structure กล่าวคือมีความเป็นโครงสร้างน้อยกว่าเร็คคอร์ดเซ็ต แต่เน้นหนักไปทางโครงสร้างข้อมูลแบบ Binary และมักอยู่ในลักษณะของ Text หรือ Images เสียมากกว่า รู้จักกับ Stream Object เป็นออบเจ็กต์ที่ช่วยให้สามารถเข้าถึงเนื้อหาภายในของแต่ละโหนดได้ เช่น ระบบอีเมลล์ เว็บเพจ ไฟล์ต่าง ๆ ยิ่งไปกว่านี้หากมีการใช้ร่วมกับออบเจ็กต์ Record และ Recordset แล้วยังสามรถสร้างเมล ์ไคลเอนท์เพื่อเข้าถึงเนื้อหาของอีเมลล์บนเว็บเพจได้ด้วย
รู้จักกับ Collection ต่าง ๆ ของ Object
-Fields Collection รวบรวมข้อมูลเกี่ยวกับออบเจ็กต์ Field ซึ่งเป็นผลลัพธ์ที่ได้จากออบเจ็กต์ Recordset หรือ Record สำหรับเร็คคอร์ดเซ็ตจะหมายถึงคอลัมน์ที่อยู่ในฐานข้อมูลโดยมีรายละเอียดเกี่ยวกับคอลัมน์นั้น ๆ เช่น ชื่อคอลัมน์ ประเภทของข้อมูลที่ใช้ ส่วนข้อมูลแบบกึ่งโครงสร้างจะให้รายละเอียดเกี่ยวกับ properties ต่าง ๆ ของฟิลด์นั้น ๆ -Properties Collection เกี่ยวข้องกับหลาย ๆ ออบเจ็กต์ เพราะใช้อธิบายคุณลักษณะของออบเจ็กต์นั้นๆ และมีความแตกต่างกันไปตามแต่ละ Provider -Parameters Collection ใช้กับออบเจ็กต์ Command ซึ่งแสดงถึงค่าพารามิเตอร์ต่าง ๆ ที่อินพุตส่งไปพร้อมกับคำสั่งในรูปของ Stored Procedure เพื่อไปทำงานยังฐานข้อมูล โดยอาจได้ค่าเอาต์พุต หรือส่งค่ากลับมาบอกถึงความสำเร็จของงาน รวมถึงข้อมูลเพิ่มเติมต่างๆ ได้ ที่สำคัญคือช่วยให้ประสิทธิภาพในการใช้งานดีขึ้นด้วย -Errors Collection เมื่อ ADO หรือ OLEDB พบข้อผิดพลาดที่เกิดขึ้น ข้อมูลเหล่านี้จะถูกรวบรวมผ่านทางออบเจ็กต์ Connection หรือกรณีที่มีการเข้าถึงข้อมูลโดยไม่ได้สร้างการเชื่อมต่อขึ้นมาก่อนจะผ่านทางพรอพเพอร์ตี้ ActiveConnection ของออบเจ็กต์ Recordset
ขั้นตอนการใช้ฐานข้อมูลจากสคริปต์ ASP
สคริปต์ ASP จะเชื่อมต่อฐานข้อมูลโดยใช้ ADO (ActiveX Data Objects) ซึ่งจะถูกติดตั้งมาพร้อมๆ กับ IIS และ PWS อยู่แล้ว จึงสามารถใช้งานได้ทันที ขั้นที่ 1 : สร้างการเชื่อมต่อไปยังฐานข้อมูล เริ่มที่การสร้างตัวแทนของออบเจ็กต์ Connection ขึ้นมา แล้วกำหนดรายละเอียดการ เชื่อมต่อให้กับเมธอด Open ของออบเจ็กต์ Connection ว่าต้องการจะเชื่อมต่อกับฐานข้อมูลประเภทใด ฐานข้อมูลนั้นถูกเก็บไว้ที่ใด วิธีในการกำหนดรายละเอียดการเชื่อมต่อมีหลายวิธี เช่น System DSN, DSN-less และ OLEDB ซึ่งวิธีการเชื่อมต่อแบบ OLEDB จะทำให้ใช้เวลาในการเชื่อมต่อตลอดจน ใช้เวลาทำงานกับฐานข้อมูลน้อยที่สุด ขั้นที่ 2 : คิวรี่หรือดึงข้อมูลมาจากฐานข้อมูล หลังจากที่สร้างการติดต่อกับฐานข้อมูลแล้ว ต้องใช้ภาษา SQL ในการระบุว่าต้องการข้อมูล จากตารางใด และยังสามารถกำหนดเงื่อนไขในการดึงข้อมูลขึ้นมาได้ด้วย เช่น Select Name From MyUser Where Name="Warissara" or Name="Hong" วิธีนี้มีข้อจำกัดที่สามารถอ่านข้อมูล ได้อย่างเดียว ไม่สามารถเพิ่ม เปลี่ยนแปลง แก้ไข ข้อมูลลงฐานข้อมูลได้ วิธีแก้ก็คือ การสร้างตัวแทน ของออบเจ็กต์ Recordset ขึ้นมาเองแล้วเรียกใช้เมธอด Open ของออบเจ็กต์ Recordset เพื่อคิวรี่ ข้อมูล ดังตัวอย่าง Set rs=Server.CreateObject("ADODB.Recordset") Sql="Select" From MyUser Rs.Open Sql, Conn, 0, 3, 1 ขั้นตอนที่ 3 : ใช้งานข้อมูลที่คิวรี่ขึ้นมา -การนำข้อมูลใน Recordset มาใช้ -การเพิ่มข้อมูลใหม่ลงฐานข้อมูล -การแก้ไขข้อมูลที่เก็บอยู่ในฐานข้อมูล -การลบข้อมูลในฐานข้อมูล
ขั้นที่ 4 : ปิดการเชื่อมต่อกับฐานข้อมูล โดยปิดการใช้งานออบเจ็กต์ Connection และ Recordset ด้วยเมธอด Close และถ้าไม่ ต้องการนำออบเจ็กต์ทั้ง 2 มาใช้งานอีกก็ควรสั่งให้ลบออบเจ็กต์ออกจากหน่วยความจำดังนี้ rs.Close Set rs=Nothing Conn.Close Set Conn=Nothing
วิธีรับส่งข้อมูลระหว่างบราวเซอร์และเซิร์ฟเวอร์
ASP ได้เตรียมวิธีง่ายๆ ที่ช่วยในการรับส่งข้อมูลระหว่างบราวเซอร์และเซิร์ฟเวอร์โดยผ่านออบเจ็กต์ พื้นฐาน 2 ออบเจ็กต์ คือ ออบเจ็กต์ Request และออบเจ็กต์ Response
ออบเจ็กต์ Request เป็นออบเจ็กต์ที่ใช้รับส่งข้อมูลที่ส่งมาจากบราวเซอร์เพื่อนำใช้ในสคริปต์โดยแบ่งได้เป็น 2 ประเภท 1. ข้อมูลที่ส่งมาจากฟอร์ม จะใช้ Property ฟอร์มของออบเจ็กต์ Request ซึ่งเป็นข้อมูลประเภท Collection เพื่อรับข้อมูลที่ผู้ใช้กรอกเข้ามาให้ผ่านฟอร์ม เช่น ถ้าสร้างฟอร์มขึ้นมาเพื่อรับชื่อผู้ใช้ด้วยโค้ด HTML ต่อไปนี้ <form method=post action=form.asp> <input type=text name=username> </form> ในสคริปต์ form.asp สามารถรับค่าที่ผู้ใช้กรอกมาในช่องรับข้อมูลประเภท Text และได้ตั้งชื่อในฟอร์มว่า username ซึ่งจะนำมาใช้เป็นคีย์เพื่ออ้างถึงค่าที่เก็บใน Collection ดังนี้ ตัวแปร=Request.Form("username")
Note: Collection เป็นวิธีเก็บข้อมูลอย่างหนึ่งคล้ายกับอาร์เรย์ แต่สามารถเก็บข้อมูลคนละชนิดไว้ใน Collection เดียวกันได้ การใช้ข้อมูลใน Collection นั้นจะต้องรู้คีย์ของข้อมูลที่ต้องการ ซึ่งถ้าจะเปรียบกับอาร์เรย์ คีย์ก็คือ Index ที่เป็นอะไรก็ได้ ไม่จำเป็นต้องเป็นตัวเลขเหมือน Index ของอาร์เรย์
2. ข้อมูลที่ส่งต่อท้ายมากับชื่อ URL การส่งข้อมูลในรูปแบบนี้จะเกิดขึ้นเมื่อเราได้กำหนดแอตทริบิวต์ method ของ <form> เป็น "get" หรือมีการส่งข้อมูลต่อท้ายชื่อ URL จากสคริปต์หนึ่งไปให้อีกสคริปต์หนึ่ง วิธีรับข้อมูลให้ใช้ Property QueryString ของออบเจ็กต์ Request ซึ่งเป็นข้อมูลประเภท Collection เช่นจากรูปมีการส่งหมายเลข ISBN มาด้วยประโยค "isbn=974-88453-0-3" ซึ่งจะนำค่า "974-88453-0-3" มาใช้ในสคริปต์ได้โดย ตัวแปร=Request.QueryString("isbn")
ออบเจ็กต์ Response เป็นออบเจ็กต์ที่ใช้ส่งข้อมูลจากสคริปต์ไปยังบราวเซอร์เพื่อแสดงผลให้ผู้ใช้เห็นได้ง่ายๆ โดยเมธอด Write ของออบเจ็กต์ Response สามารถส่งทั้งข้อมูลที่กำหนดในขณะที่เรียกใช้เมธอด Write หรือค่าในตัวแปรไปยังบราวเซอร์ก็ได้ ดังนี้ Response.Write "ข้อมูล" Response.Write ตัวแปร
|