ฉันได้เขียนบทช่วยสอนหลักเจ็ดบท ซึ่ง
เป็นหนึ่ง
ในชุดของรายการระดับกลางและความเชี่ยวชาญของส่วนประกอบ
Asp
กังวลมากที่สุดเกี่ยวกับ: เช่น: การดำเนินงานฐานข้อมูลและบรรจุภัณฑ์ การใช้วัตถุในตัวของ Asp ฉันจะใช้เวลานานในการอธิบายส่วนต่างๆ เหล่านี้ คุณต้องมีความเชี่ยวชาญมากขึ้นในการใช้ ADO เพื่อดำเนินการฐานข้อมูล และคุ้นเคยกับวัตถุหลักห้าประการของ ASP
มาดูข้อมูลบางส่วนที่เผยแพร่ทางออนไลน์กัน:
ดังที่เราทุกคนทราบกันดีว่า ASP มีออบเจ็กต์ในตัวห้ารายการ: การตอบสนอง, คำขอ, เซิร์ฟเวอร์, เซสชัน และแอปพลิเคชัน ที่จริงแล้ว ออบเจ็กต์ในตัวทั้งห้านี้เป็นองค์ประกอบ ActiveX DLL ห้ารายการที่เริ่มต้นโดยคอนโซล IIS ส่วนประกอบห้าประการสำหรับใช้ใน ASP แน่นอนว่าเรายังสามารถอ้างอิงส่วนประกอบเหล่านี้ใน ActiveX DLL ได้โดยตรงเพื่อใช้การเขียนโปรแกรมของเรา ซึ่งหมายความว่าเราสามารถบรรลุฟังก์ชันการเข้าถึงวัตถุในตัว ASP ได้โดยการอ้างอิงส่วนประกอบเหล่านี้ในแอปพลิเคชัน VB
ตราบใดที่คุณติดตั้งเว็บเซิร์ฟเวอร์ด้วย PWS4 หรือ IIS4 หรือสูงกว่า คุณจะมีไลบรารีวัตถุชื่อ "Microsoft Active Server Pages Object" เราสามารถอ้างอิงไลบรารีวัตถุนี้ในแอปพลิเคชัน ActiveX DLL ของ VB ได้ โดยการอ้างอิงถึงไลบรารีวัตถุนี้ ได้รับวัตถุ (คลาส): ScriptingContext ซึ่งเป็นวัตถุหลักของบทความทั้งหมดของเรา ความสัมพันธ์ภายในไลบรารีวัตถุมีดังนี้
สมาชิกคลาสไลบรารีวัตถุ
ASPTypeLibrary ScriptingContext Application
Request
Response
Session
Server
ผ่านแผนภาพความสัมพันธ์ข้างต้นเราสามารถเข้าใจคลาส ScriptingContent
ลองมาดูตัวอย่างที่เฉพาะเจาะจง:
เปิด vb6 และสร้างโครงการ Activex Dll ใหม่ เปลี่ยนชื่อโปรเจ็กต์เป็น fCom และชื่อคลาสเป็น fZ1
อ้างอิงถึงไลบรารีวัตถุ "Microsoft Active Server Pages Object"
สร้างเหตุการณ์คอมโพเนนต์สองรายการ: OnStartPage และ OnEndPage
สร้างการอ้างอิงถึงคลาส ScriptingContent ในเหตุการณ์ OnStartPage
สร้างอินสแตนซ์คลาส ScriptingContent
รหัสจะเป็นดังนี้:
รหัสโปรแกรม
ตัวเลือกที่ชัดเจน
'การประกาศวัตถุ
หรี่ myResponse เป็นการตอบกลับ
หรี่ myRequest ตามคำขอ
หรี่ myApplication เป็นแอปพลิเคชัน
หรี่ myServer เป็นเซิร์ฟเวอร์
หรี่ mySession เป็นเซสชัน
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อมีการสร้างส่วนประกอบ
OnStartPage ย่อยสาธารณะ (myScriptingContent As ScriptingContext)
'ดำเนินการสร้างอินสแตนซ์ของวัตถุ
ตั้งค่า myResponse = myScriptingContent.Response
ตั้งค่า myRequest = myScriptingContent.Request
ตั้งค่า myServer = myScriptingContent.Server
ตั้งค่า myApplication = myScriptingContent.Application
ตั้งค่า mySession = myScriptingContent.Session
myResponse.Write "ส่วนประกอบ ActiveX DLL ถูกสร้างขึ้นแล้ว!"
End Sub
'เหตุการณ์นี้เกิดขึ้นเมื่อส่วนประกอบถูกทำลาย
ย่อยสาธารณะ OnEndPage()
myResponse.Write "ส่วนประกอบ ActiveX DLL ถูกทำลายแล้ว!"
'ทำลายวัตถุ
ตั้งค่า myResponse = ไม่มีเลย
ตั้งค่า myRequest = ไม่มีเลย
ตั้งค่า myServer = ไม่มีเลย
ตั้งค่า myApplication = ไม่มีเลย
ตั้งค่า mySession = ไม่มีเลย
End Sub
'กำหนดวิธีการประกอบของเราเอง
สาธารณะย่อย HelloWorld()
myResponse.Write "สิ่งนี้เขียนโดยใช้วัตถุ asp ในตัว"
จบหมวดย่อย
ทดสอบเปิด Visual interdev6.0 และสร้างไฟล์ ASP
รหัสโปรแกรม
<%@ ภาษา=VBScript %>
<HTML>
<ร่างกาย>
-
ตั้ง obj=server.CreateObject("fCom.fZ1")
โทร obj.HelloWorld()
-
</ร่างกาย>
</HTML>
กำหนดค่าไดเร็กทอรีเสมือนและรันไฟล์ asp นี้ใน IE ผลลัพธ์จะเป็นดังนี้:
คอมโพเนนต์ ActiveX DLL ถูกสร้างขึ้นแล้ว คอมโพเนนต์ ActiveX DLL ที่เขียนด้วยออบเจ็กต์ในตัวของ Asp ได้ถูกทำลายแล้ว!
คอมโพเนนต์ Asp ระดับกลางและชุดการเรียนรู้ส่วนที่ 2
มาดูที่ออบเจ็กต์ Application กันก่อน ก่อนหน้านี้ Application object มักจะใช้สำหรับตัวนับ และฐานข้อมูลสำหรับสตริงการเชื่อมต่อ เราใช้ตัวนับเป็นตัวอย่าง:
มาดูไฟล์ global.asa ก่อน ซึ่งค่อนข้างง่าย
รหัสโปรแกรม
<ภาษาสคริปต์ =vbscript runat=เซิร์ฟเวอร์>
Application_onstart ย่อย
แอปพลิเคชัน("ตัวนับ")=0
จบย่อย
</สคริปต์>
จากนั้น
เปิด vb6 และสร้างโครงการ Activex Dll ใหม่ ชื่อโปรเจ็กต์เปลี่ยนเป็น fCom และชื่อคลาสเปลี่ยนเป็น fZ2
อ้างอิงถึงไลบรารีวัตถุ "Microsoft Active Server Pages Object"
สร้างเหตุการณ์คอมโพเนนต์สองรายการ: OnStartPage และ OnEndPage
สร้างการอ้างอิงถึงคลาส ScriptingContent ในเหตุการณ์ OnStartPage
สร้างอินสแตนซ์คลาส ScriptingContent
รหัสจะเป็นดังนี้:
รหัสโปรแกรม
ตัวเลือกที่ชัดเจน
'การประกาศวัตถุ
หรี่ myResponse เป็นการตอบกลับ
หรี่ myRequest ตามคำขอ
หรี่ myApplication เป็นแอปพลิเคชัน
หรี่ myServer เป็นเซิร์ฟเวอร์
หรี่ mySession เป็นเซสชัน
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อมีการสร้างส่วนประกอบ
OnStartPage ย่อยสาธารณะ (myScriptingContent As ScriptingContext)
'ดำเนินการสร้างอินสแตนซ์ของวัตถุ
ตั้งค่า myResponse = myScriptingContent.Response
ตั้งค่า myRequest = myScriptingContent.Request
ตั้งค่า myServer = myScriptingContent.Server
ตั้งค่า myApplication = myScriptingContent.Application
ตั้งค่า mySession = myScriptingContent.Session
จบหมวดย่อย
'เหตุการณ์นี้จะเกิดขึ้นเมื่อส่วนประกอบถูกทำลาย
ย่อยสาธารณะ OnEndPage()
'ทำลายวัตถุ
ตั้งค่า myResponse = ไม่มีเลย
ตั้งค่า myRequest = ไม่มีเลย
ตั้งค่า myServer = ไม่มีเลย
ตั้งค่า myApplication = ไม่มีเลย
ตั้งค่า mySession = ไม่มีเลย
จบหมวดย่อย
'คุณจะเห็นได้ว่าวิธีการเขียนจะเหมือนกันหลังจากย้ายสิ่งที่เขียนด้วย asp ไปยัง vb
ShowCounter ย่อยสาธารณะ()
Intcounter สลัวตราบเท่าที่
myApplication.ล็อค
intcounter = myApplication("ตัวนับ")
intcounter = intcounter + 1
myApplication("counter") = intcounter
myApplication ปลดล็อค
myResponse.Write CStr (intcounter)
จบหมวดย่อย
ทดสอบ
เปิด Visual interdev6.0 และสร้างไฟล์ ASP
รหัสโปรแกรม
<%@ ภาษา=VBScript %>
<HTML>
<ร่างกาย>
-
วัตถุสลัว
ตั้ง obj=server.CreateObject("fCom.fZ2")
obj.ShowCounter()
-
</ร่างกาย>
</HTML>
หลังจากกำหนดค่าไดเร็กทอรีเสมือนแล้ว คุณจะต้องใส่ไฟล์ global.asa ลงในไดเร็กทอรีราก รันไฟล์ asp นี้ใน IE รีเฟรชเพจ แล้วคุณจะเห็นตัวเลขที่เปลี่ยนแปลง
เพียงเท่านี้สำหรับการใช้งานแอปพลิเคชัน
ระดับระดับกลางของส่วนประกอบ ASP และซีรีย์ Mastery Three
เซสชัน
มันง่ายกว่ามาก
เปลี่ยนชื่อโปรเจ็กต์เป็น fCom และชื่อคลาสเป็น fZ3
อ้างอิงถึงไลบรารีวัตถุ "Microsoft Active Server Pages Object"
สร้างเหตุการณ์คอมโพเนนต์สองรายการ: OnStartPage และ OnEndPage
สร้างการอ้างอิงถึงคลาส ScriptingContent ในเหตุการณ์ OnStartPage
อินสแตนซ์สคริปต์คลาส
รหัสมีดังนี้:
รหัสโปรแกรม
ตัวเลือกที่ชัดเจน
'การประกาศวัตถุ
หรี่ myResponse เป็นการตอบกลับ
หรี่ myRequest ตามคำขอ
หรี่ myApplication เป็นแอปพลิเคชัน
หรี่ myServer เป็นเซิร์ฟเวอร์
หรี่ mySession เป็นเซสชัน
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อมีการสร้างส่วนประกอบ
OnStartPage ย่อยสาธารณะ (myScriptingContent As ScriptingContext)
'ดำเนินการสร้างอินสแตนซ์ของวัตถุ
ตั้งค่า myResponse = myScriptingContent.Response
ตั้งค่า myRequest = myScriptingContent.Request
ตั้งค่า myServer = myScriptingContent.Server
ตั้งค่า myApplication = myScriptingContent.Application
ตั้งค่า mySession = myScriptingContent.Session
End Sub
'เหตุการณ์นี้เกิดขึ้นเมื่อส่วนประกอบถูกทำลาย
public sub onendpage ()
'ทำลายวัตถุ
ตั้งค่า myResponse = ไม่มีเลย
ตั้งค่า myRequest = ไม่มีเลย
ตั้งค่า myServer = ไม่มีเลย
ตั้งค่า myApplication = ไม่มีเลย
ตั้งค่า mySession = ไม่มีเลย
จบหมวดย่อย
'คุณจะเห็นได้ว่าวิธีการเขียนจะเหมือนกันหลังจากย้ายสิ่งที่เขียนด้วย asp ไปยัง vb
'รับตัวแปรและค่าเซสชันทั้งหมด
ShowSession ย่อยสาธารณะ()
'คุณสามารถตั้งเวลาหมดเวลาได้ 20 นาที'
mySession.หมดเวลา = 20
ติ่มมิต
'รับทุกเซสชั่น'
สำหรับแต่ละรายการ myitem ใน mySession.Contents
myResponse.Write myitem & ": " & mySession.Contents (myitem)
myResponse.เขียน "<br>"
ต่อไป
จบหมวดย่อย
ทดสอบ
เปิด Visual interdev6.0 สร้างไฟล์ ASP เพื่อกำหนดค่าไดเร็กทอรีเสมือน รันไฟล์ ASP นี้ใน IE คุณจะเห็น
ชื่อ: พายุทอร์นาโด
อายุ: 26
พิเศษ:
เพียงเท่านี้สำหรับการใช้งานส่วนประกอบเซสชัน การใช้งานเซสชันอื่น ๆ ก็คล้ายคลึงกัน
รายการระดับกลางของส่วนประกอบ Asp และชุดการเรียนรู้ที่สี่
เราเรียนรู้ที่จะขอ
หากต้องการดูวิธีรับเนื้อหาที่ส่งโดยเพจในส่วนประกอบ
ให้เปิด vb6 และสร้างโครงการ Activex Dll ใหม่ ชื่อโครงการเปลี่ยนเป็น FCOM และชื่อคลาสจะเปลี่ยนเป็น FZ4
อ้างอิงถึงไลบรารีวัตถุ "Microsoft Active Server Pages Object"
สร้างเหตุการณ์คอมโพเนนต์สองรายการ: OnStartPage และ OnEndPage
สร้างการอ้างอิงถึงคลาส ScriptingContent ในเหตุการณ์ OnStartPage
สร้างอินสแตนซ์คลาส ScriptingContent
รหัสมีดังนี้:
รหัสโปรแกรม
ตัวเลือกที่ชัดเจน
'การประกาศวัตถุ
หรี่ myResponse เป็นการตอบกลับ
หรี่ myRequest ตามคำขอ
หรี่ myApplication เป็นแอปพลิเคชัน
หรี่ myServer เป็นเซิร์ฟเวอร์
หรี่ mySession เป็นเซสชัน
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อมีการสร้างส่วนประกอบ
OnStartPage ย่อยสาธารณะ (myScriptingContent As ScriptingContext)
'ดำเนินการสร้างอินสแตนซ์ของวัตถุ
ตั้งค่า myResponse = myScriptingContent.Response
ตั้งค่า myRequest = myscriptingContent.request
ตั้งค่า myServer = myScriptingContent.Server
ตั้งค่า myApplication = myScriptingContent.Application
ตั้งค่า mySession = myScriptingContent.Session
End Sub
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อส่วนประกอบถูกทำลาย
ย่อยสาธารณะ OnEndPage()
'ทำลายวัตถุ
ตั้งค่า myResponse = ไม่มีเลย
ตั้งค่า myRequest = ไม่มีเลย
ตั้งค่า myServer = ไม่มีเลย
ตั้งค่า myApplication = ไม่มีเลย
ตั้งค่า mySession = ไม่มีเลย
End Sub
'คุณจะเห็นได้ว่าวิธีการเขียนจะเหมือนกันหลังจากย้ายสิ่งที่เขียนด้วย asp ไปยัง vb
ShowRequest ย่อยสาธารณะ ()
ติ่มมิต
'โพสต์ทาง
สำหรับแต่ละ myitem ใน myRequest.Form
myResponse.Write myitem & ": " & myRequest.Form (myitem)
myResponse.เขียน "<br>"
ต่อไป
'รับวิธีการ
สำหรับแต่ละ myitem ใน myRequest.QueryString
myResponse.Write myitem & ": " & myRequest.QueryString (myitem)
myResponse.เขียน "<br>"
ต่อไป
'ข้อความเดียว.
myResponse.Write "หนึ่งในข้อความคือ " & ": " & myRequest("ชื่อผู้ใช้")
myResponse.เขียน "<br>"
จบหมวดย่อย
ทดสอบ
โค้ดโปรแกรม
ไฟล์ fz41.asp
<%@ ภาษา=VBScript %>
<HTML>
<ร่างกาย>
<ฟอร์มการกระทำ = "fz4_result.asp" วิธีการ = "โพสต์">
<อินพุต ID = ชื่อ text1 = ชื่อผู้ใช้>
<INPUT id=text2 ชื่อ=อายุ>
<อินพุต ID = submit1 type = submit value = submit name = submit>
</แบบฟอร์ม>
</ร่างกาย>
</HTML>
คุณต้องสร้าง
โค้ดโปรแกรม
ไฟล์ fz4_result.asp ที่ส่งมาด้วย
<%@ ภาษา=VBScript %>
<HTML>
<ร่างกาย>
-
วัตถุสลัว
ตั้ง obj=server.CreateObject("fCom.fZ4")
โทร obj.ShowRequest
-
</ร่างกาย>
</HTML>
นอกจากนี้ เรายังต้องดูวิธีการส่งด้วย ดังนั้น เราจึงต้องมี
โค้ดโปรแกรม
ไฟล์ fz42.asp
<%@ ภาษา=VBScript %>
<HTML>
<ร่างกาย>
<form action="fz4_result.asp?username='"&ชื่อผู้ใช้ &"'& age='"& age &"'" method="get" id=form1 name=form1>
<INPUT id=text1 ชื่อ=ชื่อผู้ใช้>
<INPUT id=text2 ชื่อ=อายุ>
<INPUT id=submit1 type=submit value=ชื่อส่ง=ส่ง>
</แบบฟอร์ม>
</ร่างกาย>
</HTML>
กำหนดค่าไดเร็กทอรีเสมือนและรันไฟล์ fc41.asp ใน IE หลังจากป้อนเนื้อหาแล้ว ให้คลิกปุ่มแล้วคุณจะเห็น
ชื่อผู้ใช้: Tornado
อายุ: 26
ส่ง: ส่ง
ใน
ข้อความคือ: พายุ
ทอร์นาโด
อายุ: 26
ส่ง: ส่ง
หนึ่งในข้อความคือ: พายุทอร์นาโด
และแถบที่อยู่จะกลายเป็น
http: //yang/xml/fz4_result.asp? ชื่อผู้ใช้ =%c1%fa%be%ed%b7%e7 & age = 26 &%cc%e1%bd%bb = ส่ง
ต่อ
ส่วนประกอบ ASP
ต่อไปลองดูที่วัตถุตอบสนอง ในความเป็นจริงเราได้ใช้วิธีการเขียนของวัตถุนี้ในบทช่วยสอนก่อนหน้า
ที่นี่เราใช้วัตถุการตอบสนองเพื่อตั้งค่าคุกกี้
เปิด vb6 และสร้างโครงการ Activex Dll ใหม่ เปลี่ยนชื่อโปรเจ็กต์เป็น fCom และชื่อคลาสเป็น fZ5
อ้างอิงถึงไลบรารีวัตถุ "Microsoft Active Server Pages Object"
สร้างเหตุการณ์คอมโพเนนต์สองรายการ: OnStartPage และ OnEndPage
สร้างการอ้างอิงถึงคลาส ScriptingContent ในเหตุการณ์ OnStartPage
สร้างอินสแตนซ์คลาส ScriptingContent
รหัสจะเป็นดังนี้:
รหัสโปรแกรม
ตัวเลือกที่ชัดเจน
'การประกาศวัตถุ
หรี่ myResponse เป็นการตอบกลับ
หรี่ myRequest ตามคำขอ
หรี่ myApplication เป็นแอปพลิเคชัน
หรี่ myServer เป็นเซิร์ฟเวอร์
Dim mySession As Session
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อมีการสร้างส่วนประกอบ
OnStartPage ย่อยสาธารณะ (myScriptingContent As ScriptingContext)
'ดำเนินการสร้างอินสแตนซ์ของวัตถุ
ตั้งค่า myResponse = myScriptingContent.Response
ตั้งค่า myRequest = myscriptingContent.request
ตั้งค่า myServer = myScriptingContent.Server
ตั้งค่า myApplication = myScriptingContent.Application
ตั้งค่า mySession = myScriptingContent.Session
End Sub
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อส่วนประกอบถูกทำลาย
ย่อยสาธารณะ OnEndPage()
'ทำลายวัตถุ
ตั้งค่า myResponse = ไม่มีเลย
ตั้งค่า myRequest = ไม่มีอะไร
ตั้งค่า myServer = ไม่มีเลย
ตั้งค่า myApplication = ไม่มีเลย
ตั้งค่า mySession = ไม่มีเลย
สิ้นสุดย่อย
'ตั้งค่าคุกกี้จากหน้าและรับจากส่วนประกอบ
ย่อยสาธารณะ getCookie ()
ติ่มมิต
'ข้อมูลทั้งหมด
สำหรับแต่ละ myitem ใน myrequest.cookies
myResponse.Write myitem & ": " & myRequest.Cookies.Item (myitem)
myResponse.เขียน "<br>"
ต่อไป
'ข้อความเดียว.
myResponse.Write "โดยที่ชื่อผู้ใช้คือ " & ": " & myRequest.Cookies("ชื่อผู้ใช้")
myResponse.เขียน "<br>"
myResponse.Write "โดยที่อายุของผู้ใช้" & ": " & myRequest.Cookies("อายุ")
myResponse.เขียน "<br>"
สิ้นสุด Sub
'ตั้งค่าคุกกี้ในส่วนประกอบและรับไว้ในเพจ
ชุดย่อยสาธารณะCookie()
myResponse.cookies ("com_username") = "พายุทอร์นาโด"
myResponse.cookies ("com_age") = 26
myResponse.หมดอายุ = #9/13/2004#
จบหมวดย่อย
คอมไพล์เป็นไฟล์ Dll จากนั้นระบบจะลงทะเบียนโดยอัตโนมัติ
มิฉะนั้น ให้ลงทะเบียน Regsvr32 ด้วยตนเอง f:testfcom.dll
เพื่อทดสอบ
open Visual interdev6.0 สร้างไฟล์ fz5.asp
และกำหนดค่าไดเร็กทอรีเสมือน รันไฟล์ fc5.asp ใน IE คุณจะเห็น
พายุทอร์นาโด
26
อายุ: 26
ชื่อผู้ใช้: ทอร์นาโด
com_age: 26
com_username: พายุทอร์นาโดที่ชื่อผู้ใช้คือ: พายุทอร์นาโดที่อายุของผู้ใช้คือ: 26
เพื่อ
ทำการแนะนำขั้นกลางอย่างต่อเนื่องและความเชี่ยวชาญของชุดส่วนประกอบ ASP หมายเลข 6
เป็นวัตถุในตัวของ ASP ในที่สุดเราก็เรียนรู้เกี่ยวกับวัตถุ
เซิร์ฟเวอร์ วัตถุใช้การเข้ารหัส Html มากขึ้นและการเปลี่ยนเส้นทางและการส่งหน้าเว็บ
เปิด vb6 และสร้างโครงการ Activex Dll ใหม่ ชื่อโครงการเปลี่ยนเป็น FCOM และเปลี่ยนชื่อคลาสเป็น FZ6
อ้างอิงถึงไลบรารีวัตถุ "Microsoft Active Server Object"
สร้างกิจกรรมสององค์ประกอบ: onstartpage และ onendpage
สร้างการอ้างอิงถึงคลาสสคริปต์คลาสในเหตุการณ์ onstartpage
อินสแตนซ์สคริปต์คลาส
รหัสมีดังนี้:
รหัสโปรแกรม
ตัวเลือกที่ชัดเจน
'การประกาศวัตถุ
หรี่ myResponse เป็นการตอบกลับ
Dim MyRequest ตามคำขอ
หรี่ myApplication เป็นแอปพลิเคชัน
Dim MyServer เป็นเซิร์ฟเวอร์
Dim mySession As Session
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อมีการสร้างส่วนประกอบ
OnStartPage ย่อยสาธารณะ (myScriptingContent As ScriptingContext)
'ดำเนินการสร้างอินสแตนซ์ของวัตถุ
ตั้งค่า myResponse = myScriptingContent.Response
ตั้งค่า myRequest = myScriptingContent.Request
ตั้งค่า myServer = myscriptingContent.server
ตั้งค่า myApplication = myScriptingContent.Application
ตั้งค่า mySession = myScriptingContent.Session
End Sub
'เหตุการณ์นี้เกิดขึ้นเมื่อส่วนประกอบถูกทำลาย
ย่อยสาธารณะ OnEndPage()
'ทำลายวัตถุ
ตั้งค่า myResponse = ไม่มีเลย
ตั้งค่า myRequest = ไม่มีอะไร
ตั้งค่า myServer = ไม่มีเลย
ตั้งค่า myApplication = ไม่มีอะไร
ตั้งค่า mySession = ไม่มีเลย
สิ้นสุด
ย่อยสาธารณะย่อย ShowHtml (ByVal strHtml As String)
myResponse.เขียน myServer.HTMLEncode(strHtml)
End Sub
Public Sub Showurl (byval strurl เป็นสตริง)
myResponse.Write myServer.URLEncode(strUrl)
สิ้นสุด
Sub ExecuteUrl ย่อยสาธารณะ ()
myserver.transfer "fz5.asp"
จบหมวดย่อย
รวบรวมลงในไฟล์ DLL และระบบจะลงทะเบียนโดยอัตโนมัติ
มิฉะนั้น ให้ลงทะเบียน Regsvr32 f:testfcom.dll ด้วยตนเอง
เพื่อทดสอบ
open Visual interdev6.0 สร้างไฟล์ fz6.asp
และกำหนดค่าไดเร็กทอรีเสมือน ดำเนินการไฟล์ fc6.asp ใน IE เพื่อดู
Test
name=Mrs+% C1%FA%เป็น%ED%B7%E7 & AGE = 26
คุณสามารถใช้ IE เพื่อดูไฟล์ต้นฉบับ
เพื่อดูการเข้ารหัส HTML
คุณยังสามารถอนุมานได้จากตัวอย่างหนึ่งและเรียนรู้คุณสมบัติและวิธีการต่างๆ ที่ยังไม่ได้นำมาใช้
รายการระดับกลางของส่วนประกอบ Asp และชุดการเรียนรู้เจ็ด
เริ่มการทำงานของฐานข้อมูล
บรรจุภัณฑ์ส่วนประกอบทั่วไป
1. สรุปข้อมูลการเชื่อมต่อฐานข้อมูล
1> ส่งคืนสตริงการเชื่อมต่อฐานข้อมูลโดยตรง เช่น
รหัสโปรแกรม
ในส่วนประกอบ
แหล่งข้อมูลฟังก์ชั่นสาธารณะ () เป็นตัวแปร
แหล่งข้อมูล = "driver={เซิร์ฟเวอร์ sql};server=yang;uid=sa;pwd=; ฐานข้อมูล=ลมเหนือ"
ฟังก์ชันสิ้นสุด
รหัสโปรแกรม
การโทร ASP
ตั้ง obj=server.CreateObject("webdb.getinfo")
oconn=obj.datasource()
นั้นชัดเจน ในไฟล์ asp การตอบสนองโดยตรง oconn สามารถแสดงสตริงการเชื่อมต่อฐานข้อมูล ซึ่งไม่มีผลกระทบที่คาดหวัง
2> ส่งคืน
โค้ดโปรแกรม
อ็อบเจ็กต์ adodb.connection
ฟังก์ชั่นสาธารณะ GetConn() เป็น ADODB.Connection
ตั้งค่า conn = ใหม่ adodb.connection
conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password=;Initial Catalog=Northwind;Data Source=yang"
คอน.เปิด
ตั้งค่า GetConn = conn
ฟังก์ชันสิ้นสุด
Asp เรียก
รหัสโปรแกรม
Dim DataQuery
ตั้งค่า dataQuery = server.createObject ("webdbtest.getInfomation"))
ตั้งค่า rs=server.createobject("adodb.recordset")
sql = "เลือก * จากพนักงาน"
Rs.Open SQL, DataQuery.getConn, 1,3
Response.write RS ("LastName")
Response.write DataQuery.getconn.ConnectionString
Set Rs = ไม่มีอะไร
ดูดี แต่ Response.Write DataQuery.getConn.ConnectionString จะยังคงแสดงสตริงการเชื่อมต่อฐานข้อมูล
2. หากต้องการสรุปส่วนประกอบต่างๆ ลงในชุดบันทึก คุณสามารถอ่านสิ่งที่ฉันเขียนเมื่อนานมาแล้วได้ : http://blog.csdn.net/online/archive/2003/12/11/7764.aspx
สิ่งที่ไม่ดีเกี่ยวกับรหัสนี้คือการเชื่อมต่อฐานข้อมูลถูกตัดสินใน
หน้า
วิธี
การส่วนประกอบ
เช่นวิธีการต่อไปนี้
แทนการห่อหุ้มบางส่วน
ASP Component Intermediate และ Mastery Series หมายเลข 8
ค่อนข้าง
ยุ่งในช่วงเวลานี้
ชื่อโปรเจ็กต์เปลี่ยนเป็น fCom และชื่อคลาสเปลี่ยนเป็น fZ8
การอ้างอิงถึงไลบรารีวัตถุ "Microsoft Active Server Pages Object", "ไลบรารี Microsoft Activex Data Object 2.7"
สร้างเหตุการณ์คอมโพเนนต์สองรายการ: OnStartPage และ OnEndPage
สร้างการอ้างอิงถึงคลาส ScriptingContent ในเหตุการณ์ OnStartPage
อินสแตนซ์สคริปต์คลาส
รหัสจะเป็นดังนี้:
รหัสโปรแกรม
ตัวเลือกที่ชัดเจน
'************************************************ *
'ผู้แต่ง: พายุทอร์นาโด
'ฟังก์ชั่น: ส่วนประกอบที่ปรับแต่งได้ง่ายและห่อหุ้มอย่างสมบูรณ์
เวลา:2005-01-01
'************************************************ *
'การประกาศวัตถุ
หรี่ MyResponse เป็นการตอบกลับ
Dim MyRequest ตามคำขอ
Dim MyApplication เป็นแอปพลิเคชัน
หรี่ myServer เป็นเซิร์ฟเวอร์
Dim Mysession เป็น
ตัวแปรส่วนตัว
เซสชัน
mPageSize ส่วนตัวตราบเท่าที่
mstrSql ส่วนตัวเป็นสตริง
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อสร้างส่วนประกอบ
Public Sub OnStartPage (MyScriptingContent เป็น ScriptingContext)
'ดำเนินการสร้างอินสแตนซ์ของวัตถุ
ตั้งค่า MyResponse = myScriptingContent.Response
ตั้งค่า myRequest = myscriptingContent.request
ตั้งค่า myServer = myscriptingContent.server
ตั้งค่า myApplication = myscriptingContent.Application
ตั้งค่า mysession = myscriptingContent.session
End Sub
'เหตุการณ์นี้จะถูกทริกเกอร์เมื่อส่วนประกอบถูกทำลาย
public sub onendpage ()
'ทำลายวัตถุ
ตั้งค่า MyResponse = ไม่มีเลย
ตั้งค่า MyRequest = ไม่มีเลย
ตั้งค่า myServer = ไม่มีเลย
ตั้งค่า myApplication = ไม่มีอะไร
ตั้งค่า mySession = ไม่มีเลย
สิ้นสุด
ตารางแสดง
ฟังก์ชั่นสาธารณะ showtable ()
Dim Conn เป็น AdoDB.Connection ใหม่
Dim Rs เป็น adodb.recordset ใหม่
หรี่ฉันเป็นจำนวนเต็ม
Dim J เป็นจำนวนเต็ม
Dim intPage เป็นจำนวนเต็ม
สลัว intpagecount เป็นจำนวนเต็ม
dim strscriptname เป็นสตริง
สลัว intpos เป็นจำนวนเต็ม
Dim intFieldCount เป็นจำนวนเต็ม
'รับเส้นทาง
strScriptName = MyRequest.ServerVariables("Script_Name")
intpos = instrrev (strscriptname, "/")
ถ้า intPos <> 0 แล้ว
strScriptName = กลาง(strScriptName, intPos + 1)
สิ้นสุดถ้า
ถ้า IsEmpty(MyRequest("page")) จากนั้น
หน้าเพจ = 1
อื่น
intPage = cint (myRequest ("หน้า")))
สิ้นสุดถ้า
ในข้อผิดพลาด goto err
conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source=localhost"
Rs.Open Mstrsql, Conn, Adopenstatic, Adlockreadonly
'รับจำนวนระเบียน
intFieldCount = rs.Fields.Count
'ตารางเอาท์พุท
myResponse.write "<table border = 1 cellspacing = 0 cellpadding = 2>"
ถ้าไม่ใช่ rs.eof แล้ว
rs.PageSize = mPageSize
rs.absolutePage = intPage
'รับหมายเลขหน้า'
intPageCount = rs.PageCount
'จัดการเพจ
ถ้า intPage <1 แล้ว intPage = 1
ถ้า intPage > intPageCount ดังนั้น intPage = intPageCount
'ส่วนหัวของเอาต์พุต
myResponse.write "<tr>"
สำหรับ i = 0 ถึง intfieldCount - 1
myResponse.write "<th>" & rs (i) .name & "</th>"
ต่อไป
myResponse.write "</tr>"
'เนื้อหาเอาต์พุต
สำหรับ i = 1 ถึง mpagesize
ถ้า RS.EOF แล้ว
ออกจาก
สิ้นสุดถ้า
myResponse.write "<tr>"
สำหรับ j = 0 ถึง intfieldCount - 1
MyResponse.Write "<td>" & rs.Fields(j).Value & "</td>"
ต่อไป
myResponse.write "</tr>"
rs.MoveNext
ต่อไป
'เพจออกมา
myResponse.write "<tr>"
ถ้า intpage <> 1 แล้ว
myResponse.write "<a href =" & strscriptName & "? page = 1> [หน้าแรก] </a>"
MyResponse.Write "<a href=" & strScriptName & "?page=" & intPage - 1 & ">[หน้าก่อนหน้า]</a>"
สิ้นสุดถ้า
ถ้า intpage <> intpagecount แล้ว
myResponse.write "<a href =" & strscriptName & "? page =" & intpage + 1 & "> [หน้าถัดไป] </a>"
myResponse.write "<a href =" & strscriptName & "? page =" & intpagecount & "> [หน้าสุดท้าย] </a>"
สิ้นสุดถ้า
myResponse.write "หน้า: <font color = 'red'>" & intpage & "/" & intpagecount & "</font>"
myResponse.write "</tr>"
สิ้นสุดถ้า
myResponse.write "</bable>"
'ปล่อยทรัพยากร
ถ้าไม่ใช่ RS ก็ไม่มีอะไรแล้ว
ถ้า rs.state = 1 แล้ว
rs.ปิด
สิ้นสุดถ้า
setrs = ไม่มีอะไร
สิ้นสุดถ้า
ถ้าไม่ใช่ Conn ก็ไม่มีอะไรแล้ว
ถ้า conn.state = 1 แล้ว
เชื่อมต่อปิด
สิ้นสุดถ้า
ตั้งค่าคอน = ไม่มีอะไร
สิ้นสุดถ้า
ออกจากฟังก์ชั่น
ERR:
MyResponse.Write ผิดพลาดหมายเลข & ผิดพลาดคำอธิบาย
ถ้าไม่ใช่ rs ก็ไม่มีอะไรแล้ว
ถ้า rs.state = 1 แล้ว
rs.ปิด
สิ้นสุดถ้า
Setrs=ไม่มีอะไร
สิ้นสุดถ้า
ถ้าไม่ใช่ Conn ก็ไม่มีอะไรแล้ว
ถ้า conn.state = 1 แล้ว
เชื่อมต่อปิด
สิ้นสุดถ้า
ตั้งค่าคอน = ไม่มีอะไร
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
'กำหนดคุณสมบัติ'
ทรัพย์สินสาธารณะรับ showpagesize () เป็นตัวแปร
showpagesize = mpagesize
คุณสมบัติสุดท้าย
ทรัพย์สินสาธารณะให้ ShowPageSize (ByVal vNewValue As Variant)
mPageSize = vNewValue
สิ้นสุด
ได้รับ strsql () เป็นตัวแปร
strsql = mstrsql
End Property
อสังหาริมทรัพย์สาธารณะ Let strSQL (ByVal vNewValue As Variant)
mstrSql = vNewValue
สิ้นสุดคุณสมบัติ
คอมไพล์เป็นไฟล์ Dll จากนั้นระบบจะลงทะเบียนโดยอัตโนมัติ
มิฉะนั้น ให้ลงทะเบียน Regsvr32 f:testfcom.dll ด้วยตนเอง
เพื่อทดสอบ
open Visual interdev6.0 และสร้างไฟล์ fz8.asp
รหัสโปรแกรม
<%@ ภาษา=VBScript %>
<HTML>
<ร่างกาย>
-
วัตถุสลัว
ตั้ง obj=server.CreateObject("fcom.fz8")
'จำนวนระเบียนที่แสดงในแต่ละหน้า
obj.showPagesize = 10
'คำสั่ง SQL ที่แสดง
obj.strSQL="เลือกรหัสลูกค้า,ชื่อบริษัท,ชื่อผู้ติดต่อ,ชื่อผู้ติดต่อ,ที่อยู่จากลูกค้า"
obj.showtable ()
-
</ร่างกาย>
</HTML>