บทนำ
บทความนี้จะอธิบายส่วนพื้นฐานและสำคัญที่สุดของการเขียนโปรแกรม ASP "การเรียกไฟล์ฐานข้อมูล" และพูดถึงเทคนิคบางอย่างสำหรับการเรียกไฟล์ฐานข้อมูลในการเขียนโปรแกรม ASP
ข้อมูลเบื้องต้นเกี่ยวกับ ASP
ASP (Active Server Pages) เป็นเทคโนโลยีการพัฒนาแอปพลิเคชันบนเว็บที่ Microsoft เปิดตัวในปี 1996 เป็นการผสมผสานระหว่างภาษาสคริปต์ ส่วนประกอบ ActiveX และภาษา HTML Microsoft อธิบายว่าเป็น "สภาพแวดล้อมการเขียนสคริปต์เซิร์ฟเวอร์ ที่นี่คุณสามารถสร้างและ ใช้งานแอปพลิเคชันเว็บเซิร์ฟเวอร์ไดนามิก โต้ตอบ และมีประสิทธิภาพสูง" หน้าที่หลักของมันคือการจัดหาวิธีการหรือเทคโนโลยีที่มีประสิทธิภาพในการสร้างแอปพลิเคชันเว็บเซิร์ฟเวอร์แบบไดนามิกและแบบโต้ตอบ คุณลักษณะของมันคือคำสั่งและสคริปต์จะถูกตีความและดำเนินการในเซิร์ฟเวอร์ จากนั้นเนื้อหาที่ส่งไปยังเบราว์เซอร์ไคลเอ็นต์จะเป็นเพียงหน้า HTML มาตรฐาน ข้อดีคือการออกแบบโปรแกรมมีความเรียบง่าย เข้าใจง่าย สะดวกและรวดเร็ว ASP มีการใช้กันอย่างแพร่หลายในประเทศจีน และเว็บไซต์ไดนามิกจำนวนมากใช้เทคโนโลยี ASP
แม้ว่าระบบที่แตกต่างกันอาจติดตั้งไดรเวอร์ฐานข้อมูลที่แตกต่างกันสำหรับ
การเรียกไฟล์ฐานข้อมูล ASP
แต่ระบบเซิร์ฟเวอร์ทั่วไปโดยพื้นฐานแล้วรองรับ IIS4.0/5.0 ดังนั้นระบบเซิร์ฟเวอร์อย่างน้อยก็จะมี Microsoft Access Driver, Microsoft ODBC สำหรับ Oracle, SQL Server เป็นต้น 3 ไดรเวอร์ฐานข้อมูล . ดังนั้น ระบบเซิร์ฟเวอร์จึงสามารถใช้ฐานข้อมูลอย่างน้อยสามฐานข้อมูล เช่น Access, Oracle และ SQL Server เพื่อมีส่วนร่วมในการออกแบบฐานข้อมูลเว็บเพจ ASP เนื่องจาก Microsoft Access 97/2000 เป็นของหนึ่งในซีรีส์ Office ของ Microsoft และอินเทอร์เฟซคล้ายกับซอฟต์แวร์ซีรีส์ Office จึงไม่มีอุปสรรคในการเรียนรู้โดยทั่วไป ดังนั้นบทความนี้จะใช้ไฟล์ฐานข้อมูล Access สำหรับการเขียนโปรแกรม ASP จากมุมมองของผู้เริ่มต้น .สร้างไฟล์ฐานข้อมูล (friend.mdb) ดังแสดงในรูปที่ 1 ผ่านแอปพลิเคชัน Access
รูปที่ 1
มีสองวิธีในการเรียกไฟล์ฐานข้อมูลในการเขียนโปรแกรม ASP วิธีหนึ่งคือการตั้งค่าโดยตรงบน "แหล่งข้อมูล (ODBC)" ของ "แผงควบคุม" อีกวิธีหนึ่งคือการเขียนโปรแกรมและเรียกฐานข้อมูลผ่าน เส้นทางสัมพันธ์ วิธีการนี้สามารถนำไปใช้กับเซิร์ฟเวอร์ใด ๆ โดยไม่ต้องกำหนดค่าเพิ่มเติม วิธีแรกนั้นง่ายและปลอดภัยกว่า และบทความนี้จะพูดถึงวิธีที่สอง
รายการด้านล่างนี้เป็นวิธีการทั่วไปสำหรับการอ่านบันทึกตารางในไฟล์ฐานข้อมูลในการเขียนโปรแกรม ASP:
01: <HTML><BODY>
02: <!--#include file="adovbs.inc"-->
03:<%
04: 'ใช้วัตถุการเชื่อมต่อของ ASP เพื่อเปิดฐานข้อมูล ไฟล์ฐานข้อมูลคือ <Friend.mdb> ในภาพด้านบน'
05: หรี่แสง objConn
06: ตั้งค่า objConn=Server.CreateObject("ADODB.Connection")
07: objConn.ConnectionString = "ผู้ให้บริการ = Microsoft.Jet.OLEDB.4.0;"
08: "แหล่งข้อมูล=" & Server.MapPath("Friend.mdb")
09: objConn เปิด
10: อ่านบันทึกของตาราง "ข้อมูล" และจัดเก็บไว้ในวัตถุชุดบันทึก
11: หรี่แสง objRS
12: ตั้งค่า objRS=Server.CreateObject("ADODB.Recordset")
13: ObjRS.เปิด "ข้อมูล",objConn,adOpenKeyset,adLockOptimistic,adCmdTable
14: 'แสดงบันทึกที่ชี้โดยตัวชี้ปัจจุบันบนเบราว์เซอร์
15: ถ้าไม่ใช่ objRS EOF
16: การตอบสนองเขียน "Number:"&objRS("Number")& "<BR>"
17: ตอบกลับ เขียน "ชื่อ:"&objRS("ชื่อ")& "<BR>"
18: ตอบกลับ เขียน "เพศ:"&objRS("เพศ")& "<BR>"
19:อย่างอื่น
20: การตอบสนองเขียน "ถึงจุดสิ้นสุดของฐานข้อมูลแล้ว และบันทึกที่ตรงกันทั้งหมดได้แสดงแล้ว"
21: สิ้นสุดถ้า
22: 'ปิดการเชื่อมต่อฐานข้อมูลและปล่อยอินสแตนซ์ของวัตถุ
23: ObjRS ปิด
24: ตั้งค่า objRS=ไม่มีอะไร
25: ObjConn ปิด
26: ตั้งค่า objConn=ไม่มีอะไร
27: %>
28: </BODY><</HTML>
โค้ดด้านบนคือขั้นตอนการออกแบบสำหรับการเปิดไฟล์ฐานข้อมูล Access ในการเขียนโปรแกรม ASP
เคล็ดลับในการเรียกไฟล์ฐานข้อมูล
(1) ที่จริงแล้ว ไม่ว่าคุณจะสลับไปใช้ฐานข้อมูล Access ใดก็ตาม ขั้นตอนในการเปิดการเชื่อมต่อฐานข้อมูลและการอ่านระเบียนตารางจะเหมือนกัน ดังนั้นโปรแกรมข้างต้นสามารถเขียนซ้ำบรรทัดที่ 3 ถึง 13 ในรูปแบบของฟังก์ชันและบันทึกไว้ในไฟล์เช่น: ADOFunctions.asp หากคุณต้องการเปิดไฟล์ฐานข้อมูลในอนาคตให้รวมไฟล์ ADOFunctions.asp รหัสเป็นดังนี้:
<%
ติ่ม objConn
'ตัวแปร Filename คือชื่อไฟล์ฐานข้อมูล ตัวแปร Table Name คือชื่อตาราง Function GetRecordset(FileName,TableName)
'ใช้วัตถุการเชื่อมต่อของ ASP เพื่อเปิดฐานข้อมูลชุด objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "ผู้ให้บริการ = Microsoft.Jet.OLEDB.4.0;"
"แหล่งข้อมูล=" & Server.MapPath("ชื่อไฟล์")
objConn.เปิด
'อ่านบันทึกของตารางและจัดเก็บไว้ในวัตถุชุดบันทึก "objRS"
ติ่ม objRS
ตั้งค่า objRS=Server.CreateObject("ADODB.Recordset")
ObjRS.Open TableName,objConn,adOpenKeyset,adLockOptimistic,adCmdTable
ฟังก์ชันสิ้นสุด
%>
ดังที่เห็นได้จากโค้ดด้านบน ชื่อฟังก์ชันคือ GetRecordSet และค่าที่ส่งคืนคืออินสแตนซ์อ็อบเจ็กต์ชุดระเบียนที่เก็บระเบียนตาราง ชื่อไฟล์คือ ADOFunctions.asp ตอนนี้คุณสามารถใช้ไฟล์นี้เพื่ออ่านบันทึกของไฟล์ฐานข้อมูลใดก็ได้ ตัวอย่างเช่น การเขียนโปรแกรมเพื่ออ่านฐานข้อมูลสามารถทำให้ง่ายขึ้นได้ดังนี้:
<HTML> <BODY>
<! --#รวมไฟล์="adovbs.inc"-->
<! --#include file="ADOFunctions.asp"-->
-
'เรียกใช้ฟังก์ชัน GetRecordset เพื่อรับอินสแตนซ์วัตถุชุดบันทึก จากนั้นกำหนดให้กับตัวแปร objRS
ติ่ม objRS
ตั้งค่า objRS=GetRecordset("Friend.mdb","data")
'แสดงบันทึกที่ชี้ไปโดยตัวชี้ปัจจุบันบนเบราว์เซอร์ถ้าไม่ใช่ objRS.EOF จากนั้น
การตอบสนองเขียน "Number:"&objRS("Number")& "<BR>"
ตอบกลับเขียน "ชื่อ:"&objRS("ชื่อ")& "<BR>"
Response.เขียน "เพศ:"&objRS("เพศ")&"<BR><"
อื่น
ตอบกลับเขียน "ถึงจุดสิ้นสุดของฐานข้อมูลแล้ว และบันทึกที่ตรงกันทั้งหมดได้แสดงแล้ว"
สิ้นสุดถ้า
'ปิดการเชื่อมต่อฐานข้อมูลและปล่อยอินสแตนซ์ออบเจ็กต์ ObjRS
ตั้ง objRS=ไม่มีอะไร
ObjConn.ปิด
ตั้งค่า objConn=ไม่มีอะไร
-
</BODY><</HTML>
ดังนั้น ตราบใดที่คุณเปลี่ยนชื่อฐานข้อมูลและชื่อตารางในโค้ดนี้ Set objRS=GetRecordset("Friend.mdb", "data") คุณก็จะสามารถเรียกไฟล์ฐานข้อมูล Access ใดก็ได้ คุณต้องใส่ใจกับ ยิ่งไปกว่านั้น ชื่อเขตข้อมูลของแต่ละตารางในฐานข้อมูลถัดไปจะต้องตรงกัน
(2) นอกจากนี้ ไม่ว่าคุณจะเปลี่ยนไปใช้ฐานข้อมูล Access ใด ขั้นตอนในการเปิดการเชื่อมต่อฐานข้อมูลและการกรองบันทึกตารางจะเหมือนกัน ตัวแปรจะมีคำสั่ง SQL (เช่น: "SELECT * FROM data") ซึ่งเป็นชื่อ ของไฟล์ฐานข้อมูลและชื่อของตาราง ดังนั้น ในทำนองเดียวกัน คุณสามารถใช้ตัวแปรทั้งสามนี้เป็นพารามิเตอร์ของฟังก์ชัน เขียนฟังก์ชัน GetSQLRecordset และบันทึกเป็นไฟล์ชื่อ ADOSQLFunctions.asp หากคุณต้องการใช้ในอนาคต เพียงรวมไฟล์นี้ไว้ที่ ด้านหน้าของโปรแกรมและคุณสามารถใช้ GetSQLRecordset ฟังก์ชันจะเปิดการเชื่อมต่อฐานข้อมูลและกรองบันทึกตารางด้วย ค่าที่ส่งคืนของฟังก์ชันนี้จะจัดเก็บอินสแตนซ์วัตถุชุดระเบียนที่สอดคล้องกับคำสั่ง SQL
รหัสเป็นดังนี้:
<%
ติ่ม objConn
Dim GetSQLRecordset
ฟังก์ชัน GetSQLRecordset (strSQL, ชื่อไฟล์, ชื่อตาราง)
'ใช้วัตถุการเชื่อมต่อของ ASP เพื่อเปิดฐานข้อมูล
ชุด objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "ผู้ให้บริการ = Microsoft.Jet.OLEDB.4.0;"
"แหล่งข้อมูล=" & Server.MapPath("ชื่อไฟล์")
objConn.เปิด
'อ่านบันทึกที่ตรงกับคำสั่ง SQL จากตารางและจัดเก็บไว้ในอ็อบเจ็กต์ชุดบันทึก
ตั้งค่า GetSQLRecordset=Server.CreateObject("ADODB.Recordset")
GetSQLRecordset.Open_ strSQL,objConn,adOpenKeyset,adLockOptimistic,adCmdText
ฟังก์ชันสิ้นสุด
%>
ชื่อฟังก์ชันในโค้ดด้านบนคือ: GetSQLRecordset และชื่อไฟล์คือ ADOSQLFunctions.asp
ตอนนี้คุณสามารถใช้ไฟล์นี้เพื่อเรียกการเชื่อมต่อกับฐานข้อมูล Access และกรองระเบียนตารางในเวลาเดียวกันได้ ยกตัวอย่างไฟล์ Friend.mdb แสดงรายการบันทึกทั้งหมดในข้อมูลตาราง รหัสโปรแกรมเป็นดังนี้:
<HTML> <BODY>
<!--#include file="adovbs.inc"-->
<!--#include file="ADOSQLFunctions.asp"-->
-
ติ่ม objRS
ตั้งค่า objRS=GetSQLRecordset("เลือกหมายเลข, ชื่อ, เพศ from_ data", "Friend.mdb", "data")
ทำในขณะที่ไม่ objRS.EOF
การตอบสนองเขียน "Number:"&objRS("Number")&"<BR>"
ตอบกลับเขียน "ชื่อ:"&objRS("ชื่อ")&"<BR><"
Response.เขียน "เพศ:"&objRS("เพศ")&"<BR><"
วนรอบ
objRS
ปิด
ตั้ง objRS=ไม่มีอะไร
ObjConn.ปิด
ตั้งค่า objConn=ไม่มีอะไร
-
</BODY><</HTML>
สรุป
ในการเขียนโปรแกรม ASP การใช้ฟังก์ชันต่างๆ อย่างเหมาะสมมักจะทำให้โค้ดโปรแกรมของเราเรียบง่ายและชัดเจน และโครงสร้างการอ่านก็ง่ายต่อการดูแลรักษา ขณะเดียวกัน ก็สามารถหลีกเลี่ยงการทำงานจำนวนมากได้เช่นกัน รหัสซ้ำและซับซ้อน เช่นเดียวกับสถานการณ์ข้างต้น หากคุณเพียงเชื่อมต่อกับฐานข้อมูล ให้ใช้สถานการณ์แรกและรวมไฟล์ ADOREcordset.asp หากคุณต้องการกรองบันทึกของตารางใดตารางหนึ่งในฐานข้อมูลหรือใช้คำสั่ง SQL อื่น ๆ การดำเนินการ ให้ใช้คำสั่งที่สอง กรณีเพียงโหลดไฟล์ ADOSQLRecordset.asp