แนะนำ: ASP TIP ตัวอย่าง: เกี่ยวกับโปรแกรมสำหรับแบบฟอร์มการทำงาน ต่อไปนี้เป็นเนื้อหาอ้างอิง: การแทรกเนื้อหาฟอร์มลงในฐานข้อมูลด้วย ASP <% ' - loader.asp -' - เวอร์ชัน 1.5.2
8.3.3 ใช้สถานะการเชื่อมต่อการบันทึกสตริงการเชื่อมต่อลงในตัวแปรแอปพลิเคชันเป็นเคล็ดลับทั่วไปและใช้งานได้เช่นเดียวกับการใช้ไฟล์ที่รวมอยู่ด้วย ตัวอย่างเช่นคุณสามารถเพิ่มรหัสต่อไปนี้ในไฟล์ global.asa:
Application_onstart ()
strConn = ผู้ให้บริการ = sqloledb; แหล่งข้อมูล = Watcher; -
แคตตาล็อกเริ่มต้น = ผับ; ID ผู้ใช้ = Davids; รหัสผ่าน = วิสกี้
ตั้งค่าแอปพลิเคชัน (ConnectionString) = strconn
สิ้นสุดย่อย
ในหน้า ASP คุณสามารถใช้รหัสต่อไปนี้:
ตั้งค่า conpubs = server.createObject (adodb.connection)
conpubs.application (ConnectionString)
จากมุมมองส่วนบุคคลฉันชอบใช้วิธีไฟล์ที่รวมอยู่เพราะฉันได้เขียนตัวอย่างที่แตกต่างกันมากมายของการเชื่อมต่อกับเซิร์ฟเวอร์และฐานข้อมูลต่างๆ การใช้วิธีแอปพลิเคชันจะหมายความว่าคุณต้องปิดเบราว์เซอร์ทุกครั้งที่คุณรีสตาร์ทแอปพลิเคชัน ผู้อ่านสามารถใช้วิธีการใด ๆ ที่พวกเขาชอบและพวกเขาไม่ได้สร้างความแตกต่างในความเร็ว
สำหรับตัวอย่างในส่วนนี้ของหนังสือเล่มนี้ไฟล์การเชื่อมต่อ. ASP กับสตริงการเชื่อมต่อจะถูกใช้เป็นไฟล์รวม
8.3.4 ไวยากรณ์การเชื่อมต่อ
สิ่งที่อธิบายไว้ข้างต้นคือทฤษฎีที่เกี่ยวข้อง ฉันควรทำอย่างไรเมื่อฉันต้องการเชื่อมต่อกับที่เก็บข้อมูลจริงๆ หากคุณใช้วัตถุการเชื่อมต่อที่กำหนดไว้อย่างชัดเจนคุณสามารถใช้วิธีการเปิดและไวยากรณ์ของมันมีดังนี้:
Connection.open [ConnectionString], [userId], [รหัสผ่าน], [ตัวเลือก]
พารามิเตอร์จะแสดงในตารางที่ 8-1:
ตารางที่ 8-1 พารามิเตอร์และคำอธิบายของวิธีการเปิด
พารามิเตอร์
อธิบาย
การเชื่อมต่อ
สตริงที่มีรายละเอียดการเชื่อมต่อ อาจเป็นชื่อของ ODBC DSN ชื่อไฟล์ลิงค์ข้อมูลหรือรายละเอียดการเชื่อมต่อจริง
ผู้ใช้
ชื่อที่ผู้ใช้ใช้ในระหว่างการเชื่อมต่อ แทนที่ชื่อผู้ใช้ใด ๆ ที่มีให้ในสตริงการเชื่อมต่อ
รหัสผ่าน
รหัสผ่านผู้ใช้ เขียนทับรหัสผ่านใด ๆ ที่มีให้ในสตริงการเชื่อมต่อ
ตัวเลือก
มันสามารถเป็น adasyncconnect โดยระบุว่าการเชื่อมต่อถูกสร้างขึ้นแบบอะซิงโครนัส ละเว้นพารามิเตอร์นี้และสร้างการเชื่อมต่อแบบซิงโครนัส
การเชื่อมต่อแบบอะซิงโครนัสไม่ได้ใช้ในสภาพแวดล้อม ASP เนื่องจากภาษาสคริปต์ไม่สามารถรับกิจกรรมจาก ADO ได้
8.3.5 ตัวอย่างการเชื่อมต่อ
นี่คือตัวอย่างบางส่วนที่นี่สมมติว่า StrConn มีสตริงการเชื่อมต่อที่ถูกต้อง
ในการเปิดการเชื่อมต่อให้ใช้วิธีการเปิดของวัตถุการเชื่อมต่อ ตัวอย่างเช่น:
ตั้งค่า conpubs = server.connection (adodb.connection)
conpubs.open strconn
'การประมวลผลบางอย่าง
conpubs.close
คุณยังสามารถใช้คุณสมบัติการเชื่อมต่อ:
ตั้งค่า conpubs = server.createObject (adodb.connection)
conpubs.connectionstring = strconn
conpubs.open
'การประมวลผลบางอย่าง
conpubs.close
ไม่มีความแตกต่างระหว่างวิธีการใช้งานทั้งสองนี้ หากวิธีการเดิมใช้เพื่อใช้การเชื่อมต่อคุณสมบัติการเชื่อมต่อสเตรตจะถูกกำหนดด้วย
เป็นที่น่าสังเกตว่าเมื่อมีการเชื่อมต่อกับที่เก็บข้อมูลแล้ว ADO อาจเปลี่ยนค่าคุณสมบัติการเชื่อมต่อ ไม่ต้องกังวล ADO จะเติมค่าแอตทริบิวต์พิเศษบางอย่างเท่านั้น
8.3.6 การเชื่อมต่อกับพูลบัฟเฟอร์
สระว่ายน้ำเชื่อมต่อทำให้หลายคนสับสน แต่หลักการนั้นง่ายมาก เมื่อการเชื่อมต่อถูกปิดการเชื่อมต่อจะถูกปิดในกรณีของผู้ใช้ (และ ADO) แต่ในความเป็นจริง OLE DB ไม่ได้ปิดการเชื่อมต่อ แต่เพียงแค่ใส่ลงในพูลบัฟเฟอร์การเชื่อมต่อที่ไม่ใช้งาน เมื่อใดก็ตามที่ผู้ใช้ (หรืออื่น ๆ ) เปิดการเชื่อมต่อ OLE DB จะตรวจพบก่อนว่ามีการเชื่อมต่อที่มีรายละเอียดการเชื่อมต่อเดียวกันในพูลเชื่อมต่อหรือไม่ ถ้าเป็นเช่นนั้นการเชื่อมต่อนี้จะได้รับโดยตรงจากพูลบัฟเฟอร์ ถ้าไม่สร้างการเชื่อมต่อใหม่สำหรับผู้ใช้ เพื่อหลีกเลี่ยงการสูญเสียทรัพยากรการเชื่อมต่อจะถูกล้างออกจากพูลบัฟเฟอร์หลังจากช่วงเวลาเริ่มต้น
แล้วข้อดีคืออะไร? การเปิดการเชื่อมต่ออาจเป็นหนึ่งในการดำเนินการที่ช้าที่สุดที่ดำเนินการและพูลบัฟเฟอร์การเชื่อมต่อช่วยให้ผู้ใช้สามารถเชื่อมต่อกับที่เก็บข้อมูลอีกครั้งโดยไม่ต้องสร้างการเชื่อมต่อใหม่ นี่เป็นสิ่งสำคัญอย่างยิ่งสำหรับเว็บไซต์ที่เปิดอย่างต่อเนื่องและปิดการเชื่อมต่อจำนวนมาก
สำหรับการเชื่อมต่อ ODBC พูลบัฟเฟอร์การเชื่อมต่อจะถูกควบคุมโดยผู้ดูแลระบบแหล่งข้อมูล ODBC สำหรับ OLE DB ไม่สามารถเปลี่ยนพูลบัฟเฟอร์การเชื่อมต่อ (หรือพูลบัฟเฟอร์เซสชัน)
จะต้องสังเกตว่าพูลบัฟเฟอร์การเชื่อมต่อไม่ใช่ส่วนแบ่งการเชื่อมต่อ การเชื่อมต่อสามารถใช้อีกครั้งหลังจากถูกปิดโดยลูกค้า
การดูแลบ้าน
เพื่อให้สระบัฟเฟอร์การเชื่อมต่อมีผลบังคับใช้จำเป็นต้องมีความจำเป็นเพื่อให้แน่ใจว่าการดูแลทำความสะอาดอยู่ในสถานะที่เป็นระเบียบ ซึ่งรวมถึงการปิดวัตถุการเชื่อมต่อในเวลาเพื่อให้สามารถนำกลับไปใช้ซ้ำไปยังสระบัฟเฟอร์ คุณอาจคิดว่าการเปิดและปิดการเชื่อมต่ออย่างต่อเนื่องนั้นมีราคาแพงสำหรับระบบ แต่คุณต้องวัดความสามารถในการปรับขนาดได้ - แอปพลิเคชันของคุณอาจถูกใช้โดยคนจำนวนมากและ OLE DB นั้นดีมากในการจัดการแหล่งข้อมูลการเชื่อมต่อ
หลักการทั่วไปคือ: สร้างการเชื่อมต่อให้ช้าที่สุดเท่าที่จะเป็นไปได้และในเวลาเดียวกันก็ปิดการเชื่อมต่อให้เร็วที่สุดเท่าที่จะเป็นไปได้เพื่อให้แน่ใจว่าช่วงเวลาที่สั้นที่สุดสำหรับการเชื่อมต่อที่จะเปิด
8.4 ชุดบันทึก
ดังที่ได้กล่าวไว้ก่อนหน้านี้ชุดบันทึกเป็นวัตถุที่ใช้กันมากที่สุดใน ADO ซึ่งไม่น่าแปลกใจ ท้ายที่สุดพวกเขามีข้อมูล อย่างไรก็ตามมีชุดบันทึกมากกว่าที่คุณคิดและเป็นสิ่งสำคัญที่จะต้องรู้ว่าข้อมูลถูกบันทึกและประมวลผลอย่างไรเนื่องจากจะให้ข้อมูลอ้างอิงเพิ่มเติมสำหรับการเลือกชุดบันทึกที่จะใช้
ชุดบันทึกมีประเภทที่แตกต่างกันและมีความแตกต่างในสถานที่เล็ก ๆ บางแห่งซึ่งสามารถนำไปสู่ความผิดพลาดได้อย่างง่ายดาย สิ่งแรกที่คุณต้องพูดอย่างจริงจังคือแนวคิดของเคอร์เซอร์
8.4.1 เคอร์เซอร์
เคอร์เซอร์เป็นแนวคิดที่ทำให้หลายคนสับสน แต่จริงๆแล้วมันง่ายมาก
เคอร์เซอร์ใช้ในการจัดการชุดระเบียนและตำแหน่งปัจจุบันของชุดระเบียนซึ่งประมวลผลโดยตัวชี้บันทึกปัจจุบัน
นี่ไม่ใช่สิ่งที่วัตถุ RecordSet ทำหรือไม่? ใช่ แต่ชุดบันทึกยังขึ้นอยู่กับเคอร์เซอร์ สิ่งนี้ยังไม่ตอบคำถามว่าเคอร์เซอร์คืออะไรดังนั้นลองมาดูชุดบันทึกดังที่แสดงในตารางที่ 8-2:
au_id
au_lname
au_fname
โทรศัพท์
172-32-1176
สีขาว
บ๊อบ
408 496-7223
219-46-8915
สีเขียว
มาร์จอรี
415 986-7020
238-95-7766
คาร์สัน
เชอริล
415 548-7723
267-41-2394
เกี่ยวกับความเอื้อเฟื้อ
ไมเคิล
408 286-2428
274-80-9391
ตรง
คณบดี
415 834-2919
341-22-1782
สมิ ธ
คดเคี้ยว
913 843-0462
มีหกแถวและสี่คอลัมน์ที่นี่ เปิดชุดระเบียนและบันทึกปัจจุบันเป็นบันทึกแรกนั่นคือบันทึกของ Bob White จะใช้อะไรเพื่อระบุบันทึกปัจจุบัน ใช้ตัวชี้บันทึกปัจจุบัน แล้วจะจัดการกับตัวชี้นี้ได้อย่างไร? เมื่อมีความจำเป็นต้องย้ายไปยังระเบียนถัดไปหรือบันทึกอื่น ๆ มันจะประสบความสำเร็จผ่านเคอร์เซอร์ เมื่อเข้าถึงฟิลด์ของแถวปัจจุบันเคอร์เซอร์จะรู้ว่าแถวใดอยู่ในปัจจุบันดังนั้นจึงสามารถส่งคืนค่าที่ถูกต้อง หากคุณพยายามที่จะย้ายออกจากแถวสุดท้ายของชุดบันทึกเคอร์เซอร์จะดำเนินการด้วย
วิธีที่ดีในการทำความเข้าใจเคอร์เซอร์คือจินตนาการว่าเคอร์เซอร์เป็นหน้าต่างที่สามารถเคลื่อนย้ายได้ภายในชุดบันทึก หน้าต่างนี้สูงและยาวเท่ากับแถวเดียวในชุดระเบียนดังนั้นคุณจะเห็นค่าข้อมูลหนึ่งแถวได้ทีละแถวเท่านั้น เมื่อคุณย้ายไปยังระเบียนอื่นหน้าต่างจะเคลื่อนที่ไปตาม
บางทีคุณอาจคิดว่านี่เป็นเรื่องง่าย แต่ก็มีความสำคัญเพราะสิ่งที่คุณสามารถทำได้กับเคอร์เซอร์นั้นถูกกำหนดโดยประเภทของเคอร์เซอร์
แชร์: รูทีน: ใช้ ASP เพื่อตรวจสอบว่าที่อยู่ไฟล์นั้นถูกต้อง ต่อไปนี้เป็นเนื้อหาที่ยกมา: <% response.write (<head> <style> <!-span {ตัวอักษรขนาด: 9pt}-> </style> </head & g