ASP (Active Server Pages) เป็นหนึ่งในเครื่องมือที่เสนอโดย Microsoft สำหรับการพัฒนาแอปพลิเคชันอินเทอร์เน็ต โดยทั่วไปแล้วการเชื่อมต่อระหว่าง ASP และฐานข้อมูลจะทำได้ผ่าน ADO (Active Data Object) ตามที่ "Computer World" รายงานเมื่อวันที่ 20 มีนาคม พ.ศ. 2543 ตามที่แนะนำ ในบทความ "การใช้ ASP เพื่อดำเนินการฐานข้อมูลเซิร์ฟเวอร์ SQL" ADO สามารถรองรับ Microsoft SQL Server ได้อย่างสมบูรณ์ แต่มีปัญหาบางประการกับบริการฐานข้อมูล ORACLE ที่ใช้กันอย่างแพร่หลายและมีกลไกที่ซับซ้อนมากขึ้น หากคุณต้องการสร้างฟังก์ชันแบบสอบถามแบบง่าย , ADO ก็เพียงพอแล้ว หากคุณต้องการใช้ฟังก์ชันเฉพาะของฐานข้อมูล ORACLE ให้ดีขึ้น เช่น STORED PROCEDURE, STORED FUNCTION เป็นต้น คุณต้องใช้เครื่องมือที่มีประสิทธิภาพอื่นเพื่อเข้าถึงบริการฐานข้อมูล ORACLE โดยใช้ ASP---Oracle Object สำหรับ OLE ออราเคิลออบเจ็กต์เซิร์ฟเวอร์ (ออราเคิลออบเจ็กต์เซิร์ฟเวอร์) บทความนี้จะอธิบายจากตัวอย่างวิธีการใช้การควบคุมที่ได้รับจากออบเจ็กต์เซิร์ฟเวอร์ ORACLE ใน ASP เพื่อให้สามารถเข้าถึงฐานข้อมูล ORACLE และอธิบายวิธีรักษาข้อจำกัดด้านความสมบูรณ์ของฐานข้อมูลเครือข่าย
----Oracle Object for OLE เป็นผลิตภัณฑ์ที่จำเป็นอย่างยิ่งที่พัฒนาโดย ORACLE สำหรับการเข้าถึงฐานข้อมูลของไคลเอ็นต์ ซึ่งใช้ Windows 95/98/NT และสามารถเข้าถึงได้โดยแอปพลิเคชันและภาษาการเขียนโปรแกรมที่เข้ากันได้กับ OLE ทั้งหมด เช่น ASP, Visual Basic ส่วนเกิน 97 เป็นต้น Oracle Object สำหรับ OLE รวมถึง ORACLE Object Server (Oracle Object Server), ORCLE Data Control (The Oracle Data Control) และ ORACLE Object Class Library (The Oracle Objects สำหรับ OLE C++ Class Library) และสินค้าอีก 3 รายการ
---- เมื่อเปรียบเทียบกับ ADO แล้ว ออบเจ็กต์เซิร์ฟเวอร์ของ ORACLE เป็นผลิตภัณฑ์ที่ออกแบบมาเพื่อการพัฒนาแอปพลิเคชันฐานข้อมูล ORACLE โดยเฉพาะ โดยมีข้อดีดังต่อไปนี้:
---- (1) การเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูลทำงานได้อย่างมีประสิทธิภาพ เนื่องจาก ADO เชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูลผ่าน ODBC และเซิร์ฟเวอร์วัตถุ ORACLE เชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูลผ่าน SQL*NET ของ ORACLE
---- (2) สามารถใช้ฟังก์ชันเฉพาะของฐานข้อมูล ORACLE ได้ดีขึ้น เช่น กระบวนการจัดเก็บ, ฟังก์ชั่นการจัดเก็บ, แพ็คเกจ หรือเคอร์เซอร์หลายตัว
---- ตัวอย่างนี้เป็นโปรแกรมขนาดเล็กสำหรับการสืบค้นและป้อนสมุดที่อยู่ ผู้ใช้สามารถสืบค้นตารางสมุดที่อยู่ผ่านเบราว์เซอร์ หรือป้อนข้อมูลของตนเองเพื่อให้ผู้อื่นสืบค้น
----โครงสร้างของตารางสมุดที่อยู่มีดังนี้:
ชื่อ Null ประเภท?
-
ชื่อไม่เป็นค่าว่าง (8)
ที่อยู่ ชาร์(20)
ถ่านโทรศัพท์(20)
อีเมล VARCHAR2(30)
---- ขั้นแรก: กำหนดค่าสภาพแวดล้อม:
----ติดตั้งซอฟต์แวร์ต่อไปนี้บนเว็บเซิร์ฟเวอร์และกำหนดค่า:
---- (1)เว็บเซิร์ฟเวอร์พื้นฐาน (WEB SERVER) และ ASP และซอฟต์แวร์อื่นๆ
---- (2) ออบเจ็กต์ Oracle สำหรับ OLE2.x
---- (3) SQL*Net Client หรือ Oracle Net8 Client 8 หลังการติดตั้ง ให้ใช้ Sql*Net Easy Configuration เพื่อสร้างฐานข้อมูล alias (Database Alias) ซึ่งเป็นนามแฝงที่ ASP ใช้เพื่อเชื่อมต่อกับฐานข้อมูล
---- สอง. การรับรู้ฟังก์ชัน
---- (1) แบบสอบถาม: ใช้ ASP เพื่อรับข้อมูลจากตารางสมุดรายชื่อฐานข้อมูล (TSB1) และแสดงข้อมูลบนหน้าจอ กุญแจสำคัญในการสืบค้นคือการพิจารณาว่าการเชื่อมต่อกับฐานข้อมูลสำเร็จหรือไม่ เซิร์ฟเวอร์ออบเจ็กต์ ORACLE นั้นมีกลไกการควบคุมข้อผิดพลาดที่สามารถรายงานข้อผิดพลาดในการเชื่อมต่อฐานข้อมูลได้
<HTML>
<tile>โปรแกรมสืบค้น</title>
<ร่างกาย>
-
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
'เชื่อมต่อกับฐานข้อมูล
ตั้งค่า orasession=createobject
("OracleInprocServer.XOraSession")
ตั้งค่า oradatabase=orasession.
dbopendatabase("axp03","สกอตต์/ไทเกอร์",0)
'การจัดการข้อผิดพลาด
ถ้า err.number >0 แล้ว
response.write"< h4 >การควบคุมข้อผิดพลาด asp< /h4 >"
response.write"แหล่งข้อผิดพลาด asp:"&err.source &"< br >"
response.write"รหัสข้อผิดพลาด asp:"&err.number&"< br >"
response.write"คำอธิบายข้อผิดพลาด asp:"&err.description&"< br >"
ผิดพลาดชัดเจน
response.write"< h4 >การควบคุมข้อผิดพลาด ORACLE OLE< /h4 >"
response.write"รหัสข้อผิดพลาด ORACLE:
"&OraSession.LastServerErr&"< br >"
response.write"คำอธิบายข้อผิดพลาดของ ORACLE:
"&OraSession.LastServerErrText&"< br >"
อื่น
'สอบถาม
sql = "เลือก * จาก tsb1"
ตั้ง oradynaset=oradatabase.dbcreatedynaset(sql,0)
response.write"< h3 >ผลลัพธ์< /h3 >"
response.write"< เส้นขอบตาราง=5 >< tr >"
สำหรับ i=0 ถึง oradynaset.fields.count-1
ตอบกลับเขียน"<td>"
response.write oradynaset.fields(i).name & " "
response.write"< /td >"
ต่อไป
response.write"< /tr >"
ทำจนถึง oradynaset.eof
response.write"<tr>"
สำหรับ i=0 ถึง oradynaset.fields.count-1
ตอบกลับเขียน"<td>"
response.write oradynaset.fields(i).value
response.write"< /td >"
ต่อไป
response.write"< /tr >"
oradynaset.dbmovenext
วนซ้ำ
response.write"< /table >"
'ปิดฐานข้อมูล
ordatabase.ปิด
ตั้งค่า orasession=ไม่มีอะไร
สิ้นสุดถ้า
-
</ ร่างกาย >
</ /html >
----ต่อไปนี้เป็นภาพผลลัพธ์แบบสอบถามของโปรแกรม:
สมุดที่อยู่
ชื่อ ที่อยู่ โทรศัพท์ อีเมล
Zhang Ling No. 5 Hubei Road, Ma'anshan City 0555-2887765 [email protected]
Lin Xiang No. 9 Hunan Road, Ma'anshan City 0555-2223856 [email protected]
เลขที่ 504 อาคาร 4 ถนนเหมืองแร่ Deng Guohong 0555-2474748 [email protected]
ห้อง 507 อาคาร 7 มหาวิทยาลัยชิงเต่าโอเชี่ยน หลี่เฉิง 0464-32456678 [email protected]
เลขที่ 807 อาคาร 7 ชุมชนเหมืองแร่ Wang Guozai 0555-3445454 [email protected]
เลขที่ 405 อาคาร 17 ถนนหงฉีใต้ ติงกัง 0555-2883721 [email protected]
เลขที่ 607 อาคาร 7 ถนนเป่าเจียงซี 0554-4566777 [email protected]
---- (2) แทรกข้อมูลของคุณเอง : ใช้ ASP เพื่อแทรกข้อมูลที่ผู้ใช้ให้ไว้บนเบราว์เซอร์ลงในตารางสมุดที่อยู่ฐานข้อมูล (TSB1) ฐานข้อมูล ORACLE มีชุดกลไกข้อ จำกัด ด้านความสมบูรณ์ดังนั้นกระบวนการแทรก ไม่เพียงแต่แทรกข้อมูลลงในตารางอย่างมีประสิทธิภาพ และตรวจสอบข้อจำกัดด้านความสมบูรณ์เท่านั้น ข้อมูลที่ไม่ตรงตามข้อกำหนดจะถูกปฏิเสธไม่ให้แทรกลงในโปรแกรม โปรแกรมจะถูกขัดจังหวะเนื่องจากข้อผิดพลาด รายงานโดยเซิร์ฟเวอร์ฐานข้อมูลระหว่างรันไทม์ อ็อบเจ็กต์ ERR ใน ASP สามารถรายงานแหล่งที่มาของข้อผิดพลาด รหัสข้อผิดพลาด คำอธิบายข้อผิดพลาด ฯลฯ และสามารถนำโปรแกรมไปสู่การประมวลผลข้อผิดพลาดได้
---- ต่อไปนี้คือโปรแกรม โปรแกรมหนึ่งคือ insert.htm ซึ่งเป็นอินเทอร์เฟซอินพุตสำหรับผู้ใช้ในการป้อนข้อมูลของตนเอง และอีกโปรแกรมหนึ่งคือ insert.asp ซึ่งมีหน้าที่ในการแทรกข้อมูลอินพุตของผู้ใช้ลงในฐานข้อมูลและดำเนินการผิดพลาด กำลังตรวจสอบ
แทรก.htm:
<html>
<หัว>
< meta http-equiv="เนื้อหาภาษา"
เนื้อหา = "zh-cn">
< meta http-equiv="ประเภทเนื้อหา"
content="text/html; charset=gb2312">
< ชื่อเมตา = "เครื่องกำเนิดไฟฟ้า" เนื้อหา=
"ไมโครซอฟต์ ฟร้อนท์เพจ 4.0" >
< ชื่อเมตา = "ProgId" เนื้อหา=
"FrontPage.Editor.Document">
<title>กรุณาทิ้งข้อมูลของคุณ</title>
</ /หัว>
<ร่างกาย>
< p align="center">กรุณากรอกข้อมูลของคุณ</ /p >
< รูปแบบวิธีการ = "โพสต์" การกระทำ = "insert.asp" >
ชื่อ:
< ประเภทอินพุต = "ข้อความ" ชื่อ = "ชื่อ" ขนาด = "8" > < br >
ที่อยู่:
< ประเภทอินพุต = "ข้อความ" ชื่อ = "ที่อยู่" ขนาด = "20" > < br >
โทรศัพท์:
< ประเภทอินพุต = "ข้อความ" ชื่อ = "โทรศัพท์" ขนาด = "20" > < br >
อีเมล: < input type="text" name="email" size="20" > < br >
< ประเภทอินพุต = "ส่ง" ค่า = "ตกลง" >
< ประเภทอินพุต = "รีเซ็ต" ค่า = "ยกเลิก" >< br >
</ /แบบฟอร์ม>
</ ร่างกาย >
</ /html >
---- ต่อไปนี้คืออินเทอร์เฟซการป้อนข้อมูลของผู้ใช้:
กรุณากรอกชื่อข้อมูลของคุณ:
ที่อยู่:
โทรศัพท์:
อีเมล:
แทรก.asp:
<HTML>
<ร่างกาย>
-
'เชื่อมต่อกับฐานข้อมูล
ตั้งค่า orasession=createobject
("OracleInprocServer.XOraSession")
ตั้งค่า oradatabase=orasession.
dbopendatabase("axp03","สกอตต์/ไทเกอร์",0)
'แปลงข้อมูลที่ผู้ใช้ใส่ลงในคำสั่ง SQL
sql="ใส่เข้าไปในค่า tsb1
(" &chr(39)&request("ชื่อ")&chr(39) &","_
&chr(39)&คำขอ("ที่อยู่")&chr(39)&","_
&chr(39) & คำขอ("โทรศัพท์")&chr(39) &","_
&chr(39)&request("อีเมล")&chr(39)&")"
'เรียกใช้คำสั่งแทรก SQL
oradatabase.dbEXECUTESQL(sql)
'ตรวจสอบข้อผิดพลาดการละเมิดข้อจำกัดด้านความสมบูรณ์
หาก ERR.NUMBER >0 แล้ว
response.write"< h4 >การควบคุมข้อผิดพลาด asp< /h4 >"
response.write"แหล่งข้อผิดพลาด asp:"&err.source &"< br >"
response.write"รหัสข้อผิดพลาด asp:"&err.number&"< br >"
response.write"คำอธิบายข้อผิดพลาด asp:"&err.description&"< br >"
อื่น
'การแทรกเสร็จสมบูรณ์ กลับมาได้'
response.write "การแทรกเสร็จสมบูรณ์ < a href=insert.htm > ส่งคืน... < /a >"
สิ้นสุดถ้า
-
</ ร่างกาย >
</ /html >
---- ข้างต้นคือประสบการณ์บางส่วนของฉันในการใช้เครื่องมือ ASP เพื่อย้ายข้อมูลฐานข้อมูล ORACLE ดั้งเดิมไปยังแอปพลิเคชันอินเทอร์เน็ต ตัวอย่างนี้ง่ายมากและมีจุดประสงค์เพื่อแสดงหลักการนี้ ฉันยังใช้ STORED PROCEDURE, STORED FUNCTION และ PACKAGE อีกด้วย โปรแกรม ASP รอให้ฟังก์ชันเฉพาะของ ORACLE เร่งความเร็วและปรับปรุงประสิทธิภาพ หวังว่าคงจะเป็นแรงบันดาลใจให้ทุกคนได้โปรดเขียนเพื่อสื่อสารกันนะครับ