ASP มีฟังก์ชันที่สำคัญที่สุดอย่างหนึ่งซึ่งช่วยให้คุณสามารถเชื่อมต่อกับฐานข้อมูลได้อย่างง่ายดาย โดยปกติจะเชื่อมต่อกับฐานข้อมูล Access หรือ SQL เนื่องจาก Access เป็นวิธีที่ง่ายที่สุดในการเริ่มต้น และอาจติดตั้ง Access ไว้ในเครื่องของคุณแล้ว เราจะใช้ Access ในตัวอย่างต่อไปนี้ เมื่อคุณเรียนรู้วิธีหลักทางเทคนิคในการเชื่อมต่อฐานข้อมูล ASP และ Access แล้ว เมื่อคุณเริ่มใช้เซิร์ฟเวอร์ SQL คุณจะพบว่าเทคโนโลยีหลักที่จำเป็นสำหรับทั้งสองนั้นโดยพื้นฐานแล้วจะเหมือนกัน
สร้างชื่อแหล่งข้อมูล (DSN)
คุณสามารถทำให้ฐานข้อมูลของคุณพร้อมใช้งานใน ASP ได้โดยการสร้าง DSN ระบบสำหรับฐานข้อมูลของคุณในแผงควบคุม คุณสามารถสร้าง DSN ได้หลายรายการบนเครื่องคอมพิวเตอร์ของคุณ โดยแต่ละ DSN จะสอดคล้องกับฐานข้อมูลที่แตกต่างกันที่คุณใช้ หลังจากตั้งค่า DSN คุณสามารถทดสอบเพจของคุณบนเซิร์ฟเวอร์ภายในเครื่องของคุณได้ หากเว็บไซต์ของคุณ
ให้บริการโดย ISP และ ISP รองรับ ASP ก็มีแนวโน้มมากว่าจะมีอินเทอร์เฟซ GUI เพื่อสร้าง DSN สำหรับฐานข้อมูลของคุณ
ใน Windows 95/98/NT ให้เปิดแผงควบคุม (เมนู Start -> การตั้งค่า -> แผงควบคุม) และดับเบิลคลิก ODBC เพื่อเข้าสู่
เลือก DSN ของระบบแล้วคลิกเพิ่ม
เลือก "ไดรเวอร์ Microsoft Access" แล้วคลิกเสร็จสิ้น
กรอกชื่อแหล่งข้อมูล นี่คือชื่อที่คุณตั้งให้ฐานข้อมูลของคุณ ดังนั้นจึงเป็นการดำเนินการเดียวกันกับนามแฝง
คลิกปุ่มเลือกในการเลือกฐานข้อมูลเพื่อเรียกดูตำแหน่งที่ตั้งในระบบที่เก็บฐานข้อมูล Access ที่คุณสร้างขึ้น
คลิกตกลง
ขณะนี้ DSN ใหม่จะปรากฏในระบบ DSN และจะพร้อมใช้งานบนเซิร์ฟเวอร์ภายในเครื่องของคุณ
การเชื่อมต่อกับฐานข้อมูล มาตั้งค่าการเชื่อมต่อแบบไม่ใช้ DSN และดูวิธีเชื่อมต่อกับฐานข้อมูลกัน เมื่อคุณสร้าง DSN คุณจะเก็บข้อมูลบางอย่างเกี่ยวกับฐานข้อมูลไว้แล้ว ดังนั้นคุณไม่จำเป็นต้องทำซ้ำทุกครั้งที่จำเป็นต้องใช้ข้อมูลบางอย่าง เช่น ประเภทฐานข้อมูล ชื่อ ตำแหน่งที่จัดเก็บข้อมูล และคุณสมบัติเสริม ผู้ใช้ และรหัสผ่าน
หากต้องการสร้างการเชื่อมต่อแบบไม่ใช้ DSN คุณจะต้องให้ข้อมูลเดียวกัน ตัวอย่างต่อไปนี้แสดงวิธีสร้างการเชื่อมต่อแบบไม่ใช้ DSN ไปยังฐานข้อมูลที่เรียกว่าผลิตภัณฑ์:
<%
StrConnect = "ไดรเวอร์={ไดรเวอร์ Microsoft Access (*.mdb)}; DBQ=C:dbproducts.mdb"
ตั้งค่า objConn = Server.CreateObject ("ADODB.Connection")
objConn.OpenStrConnect
%>
บรรทัดที่สองกำหนดไดรเวอร์และพาธฟิสิคัลของฐานข้อมูล หากต้องการใช้การเชื่อมต่อแบบไม่ใช้ DSN คุณจำเป็นต้องทราบตำแหน่งไฟล์จริง (เส้นทางสัมบูรณ์) Server.MapPath มอบสภาพแวดล้อมการทำงานที่เรียบง่ายสำหรับทุกคนที่ใช้บริการโฮสติ้งเพื่อค้นหาเส้นทางการเข้าถึงจริงที่หายากเหล่านั้น
หากเราสร้างระบบที่มีชื่อผลิตภัณฑ์ DSN รหัสการเชื่อมต่อควรเป็น:
<%
ตั้งค่า objConn = Server.CreateObject ("ADODB.Connection")
objConn.Open "ผลิตภัณฑ์"
%>
เมื่อฐานข้อมูลเปิดแล้ว คุณจะทำอย่างไร? สิ่งแรกคือต้องอ่านชุดบันทึกในฐานข้อมูลและใส่ลงในเพจของคุณ แต่ก่อนหน้านั้น คุณต้องมีชุดบันทึก
ชุดระเบียน
ชุดระเบียนคือข้อมูลทั้งหมดที่จัดเก็บไว้ในตารางฐานข้อมูลพิเศษ ดังนั้น เมื่อคุณเปิดชุดระเบียนนี้ คุณจะสามารถเข้าถึงเนื้อหาของแถวและคอลัมน์ทั้งหมดในตารางได้ คุณต้องเปิดชุดระเบียนนี้เหมือนกับที่คุณต้องการเปิดการเชื่อมต่อฐานข้อมูล คำสั่งจะคล้ายกัน:
Set objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "downloadable", strConnect, 0,1,2
จะสร้างชุดระเบียน (objRec) ชื่อตารางที่ดาวน์โหลดได้ ซึ่งกำหนดไว้ใน strConnect ในฐานข้อมูลผลิตภัณฑ์ เมื่อใช้ Recordset open เราสามารถวนซ้ำตารางนี้และแสดงเนื้อหาทั้งหมดบนหน้าจอ อีกทางหนึ่ง เราสามารถทดสอบเนื้อหาของฟิลด์เฉพาะ หรือเพียงแค่เขียนสิ่งที่เราสนใจบนหน้าจอ
แต่ละคอลัมน์แสดงถึงเขตข้อมูล ดังนั้น หากตารางฐานข้อมูลมีลักษณะดังนี้:
รหัสผลิตภัณฑ์ | ชื่อ | SKU | ไฟล์ |
1 | PR12345 | ผลิตภัณฑ์ A | install_a.exe |
2 | PR12346 | ผลิตภัณฑ์ B | Install_b.exe |
จากนั้น เรามีเนื้อหาของฟิลด์ต่อไปนี้: ProductID, SKU, ชื่อ และไฟล์ ตารางของคุณมักจะมีช่องเพิ่มเติมมากมาย ซึ่งอาจมีหลายข้อมูล เช่น ราคาหรือคำอธิบายผลิตภัณฑ์ (รายการ) แต่แผนผังนี้สามารถให้แนวคิดพื้นฐานที่สุดของตารางฐานข้อมูลแก่คุณได้
การกรอกเนื้อหาของชุดระเบียนทำได้ง่ายมากโดยใช้ชุดระเบียน หากคุณต้องการวนซ้ำฐานข้อมูลและพิมพ์ข้อมูลทั้งหมดลงบนหน้าจอ คุณสามารถทำสิ่งต่อไปนี้:
ในขณะที่ NOT objRec.EOF
' บอกให้ทำเช่นนี้ตราบใดที่เรายังไม่ถึงจุดสิ้นสุดของไฟล์
Response.WriteobjRec("รหัสผลิตภัณฑ์") & `, "
การตอบกลับ WriteobjRec("SKU") & ",", "
Response.WriteobjRec("ชื่อ") & ","
Response.WriteobjRec("ไฟล์") & "<BR>"
objRec.MoveNext
เวนด์;
แม้ว่าคุณจะไม่ได้ใช้ลูปในลักษณะนี้ คุณยังคงสามารถอ่านโค้ดนี้เพื่อเขียนข้อมูลลงในสตริงที่คั่นด้วยเครื่องหมายจุลภาค และเมื่อมีการสร้างแถวใหม่ในตารางฐานข้อมูล ให้สร้างแถวใหม่เพื่อบันทึกแถวนั้นในตาราง คุณสามารถใช้วิธีเดียวกันในการเขียนข้อมูลลงในตาราง HTML เมื่อใช้ Response.Write เพื่อเพิ่มแท็ก TABLE ของคุณ มีบางสิ่งที่ต้องคำนึงถึง:
แท็ก HTML ของคุณและเนื้อหาในเครื่องหมายคำพูด
หากแท็กหรือเนื้อหาของคุณใช้เครื่องหมายคำพูด ต้องแน่ใจว่าใช้เครื่องหมายคำพูดคู่:
<ขนาดตัวอักษร=""+2"">.
ใช้ & เพื่อเชื่อมต่อตัวแปรและข้อมูล HTML/เนื้อหาเพื่อเลือกฟิลด์ในชุดระเบียน สมมติว่าฐานข้อมูลผลิตภัณฑ์ของเราประกอบด้วยฟิลด์ที่เรียกว่า OS สมมติว่าฟิลด์นี้เป็นตัวคั่นแพลตฟอร์ม ขอย้ำอีกครั้งว่าข้อมูลที่จัดเก็บไว้ในฟิลด์นี้สามารถเป็นได้ดังต่อไปนี้: Windows NT, Windows 95, Windows 98, Windows, Mac, Unix หรือ Linux
ต่อไป เราสามารถยืนยันได้ว่าฟิลด์ใดที่เราต้องพิมพ์ลงบนหน้าจอ และฟิลด์ใดที่เราต้องการละเว้น หรืออีกทางหนึ่ง เราสามารถเลือกได้ว่าฟิลด์ใดใช้รูปแบบเดียวและฟิลด์อื่นใช้รูปแบบอื่น เช่น การใช้สีที่ต่างกัน
การใช้ If... loop แบบธรรมดาช่วยให้เราสามารถควบคุมฐานข้อมูลได้มากขึ้น ขั้นแรก ให้พิมพ์บันทึกเกี่ยวกับผลิตภัณฑ์ Windows NT:
<TABLE BORDER=0 WIDTH=600>
<TR><TD COLSPAN=4 ALIGN=CENTER><FONT SIZE="+1"<<B>ผลิตภัณฑ์ Windows NT</B></FONT></TD></ TR>
<%
ในขณะที่ NOT objRec.EOF
ถ้า objRec("OS") = "Windows NT" THEN ' ระบุเกณฑ์
Response.Write "<TR><TD BGCOLOR=""#FFFF66"">" & objRec("ProductID") & " </TD>"
การตอบสนองเขียน "<TD>" & objRec("SKU") & "</TD>"
การตอบกลับเขียน "<TD>" & objRec("ชื่อ") & "</TD>"
Response.Write "<TD>" & objRec("File") & "</TD></TR>"
สิ้นสุดถ้า
objRec.MoveNext
เวน
%>
</ตาราง>
การเพิ่มบันทึก เมื่อคุณเริ่มใช้ชุดระเบียนและ ASP คุณจะต้องการเพิ่มข้อมูลลงในฐานข้อมูลผ่านเครือข่ายจริงๆ การเพิ่มเนื้อหาถือเป็นสิ่งสำคัญ เช่น เมื่อคุณต้องการให้ผู้เยี่ยมชมเว็บแสดงความเห็นและความคิดเห็น หรือเมื่อคุณต้องการดำเนินการอัปเดตด้านการดูแลระบบ
รหัสต่อไปนี้จะเปิดชุดระเบียนที่เกี่ยวข้องกับตารางฐานข้อมูลที่มีชื่อหนังสือและผู้แต่ง คุณอาจเคยเห็นสิ่งนี้มาก่อน แต่คราวนี้ ข้อกำหนดสามประการล่าสุดกำหนดประเภทตัวชี้ที่แตกต่างกัน: adOpenStatic, adLockOptimistic, adCmdTable:
<% ' การเชื่อมต่อฐานข้อมูลไม่ได้แสดงไว้ที่นี่
ตั้ง objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Open "หนังสือ", bookdb, adOpenStatic, adLockOptimistic, adCmdTable
%>
(หากคุณไม่ได้ใช้ไฟล์คัดลอกของ adovbs.inc บรรทัดที่สามควรเป็น: objRec.Open "books", bookdb, 3,3,2)
ขณะนี้ชุดระเบียนพร้อมที่จะรับข้อมูลแล้ว คุณเพียงต้องการเท่านั้น เพื่อบอกว่าจะเพิ่มอะไร ในกรณีนี้ สมมติว่าเรานำตัวแปรจากตาราง: strBookTitle และ strBookAuthor ตาราง หนังสือ ของเรามีสองฟิลด์ที่เรียกว่าชื่อเรื่องและผู้แต่ง ดังนั้นเราจึงสามารถเพิ่มระเบียนใหม่ได้โดยใช้คำสั่งต่อไปนี้:
<%
objRec.AddNew
ObjRec("หัวข้อ") = strBookTitle
objRec("ผู้เขียน") = strBookAuthor
objRec.อัปเดต
%>
strBookTitle และ strBookAuthor แสดงถึงค่าต่างๆ และโดยปกติผู้ใช้จะเข้าถึงได้ หากคุณเพียงต้องการทดสอบฟังก์ชันการเพิ่ม คุณสามารถเพิ่มตัวแปรสำหรับชื่อเรื่องและผู้แต่งได้ เพียงอย่าลืมใช้เครื่องหมายคำพูด ครั้งแรกที่คุณใช้ คุณอาจจะเปิดฐานข้อมูลของคุณทันทีเพื่อให้แน่ใจว่าการอัปเดตจะเกิดขึ้น
ประเภทชุดระเบียน ในตัวอย่าง objRec.Open ที่แสดง คุณจะพบคำว่า 0, 1 และ 2 ที่ส่วนท้าย ตัวเลขเหล่านี้แสดงถึงประเภทพอยน์เตอร์ที่แตกต่างกัน ประเภทที่คุณใช้ขึ้นอยู่กับว่าคุณจะใช้มันเพื่ออะไร ตัวอย่างเช่น หากคุณไม่จำเป็นต้องแก้ไขหรือเพิ่มเรกคอร์ดใดๆ คุณสามารถใช้ประเภทการล็อคได้ เมื่อคุณวางแผนที่จะแก้ไขหรืออัพเดตฐานข้อมูล ประเภทที่คุณเลือกจะแตกต่างออกไป
0,1,2 หมายถึง:
adOpenForwardOnly, adLockReadOnly, adCmdTable
แน่นอน หากคุณมีข้อมูลสำรองของ adovbs.inc บนเซิร์ฟเวอร์ของคุณอยู่แล้ว คุณสามารถใช้คำเหล่านี้ได้โดยตรงโดยไม่ต้องใช้ตัวเลข adovbs.inc มีค่าคงที่สามค่านี้และรายการค่าคงที่อื่นๆ