แนะนำ: การเขียนโปรแกรมขั้นสูง ASP 3.0 (45) การดำเนินการแบบอะซิงโครนัสหมายถึงการดึงข้อมูลในพื้นหลังและข้อมูลที่คุณได้รับสามารถนำมาใช้บนหน้าเว็บก่อนที่ข้อมูลทั้งหมดจะถูกส่งคืน แม้ว่าข้อมูลทั้งหมดอาจจำเป็นต้องใช้งานแบบอะซิงโครนัสสามารถเริ่มการประมวลผลข้อมูลได้อย่างน้อยล่วงหน้า นอกจากนี้ยังสามารถอนุญาตให้ผู้ใช้ดูเนื้อหาบางอย่างก่อนซึ่งทำให้เว็บไซต์
ภาพรวม
วัตถุการจัดการแบบกระจาย SQL (SQL-DMO) ให้นักพัฒนามีวิธีการทำงานทั่วไปโดยใช้โปรแกรมและภาษาสคริปต์ดังนั้นจึงขยายการทำงานของเซิร์ฟเวอร์ SQL บทความนี้กล่าวถึงวิธีการใช้ SQL-DMO อย่างชาญฉลาดเพื่อสร้างการสำรองข้อมูลฐานข้อมูลและแอปพลิเคชันการตรวจสอบ ASP
หลักฐาน
คุณต้องมีความรู้เกี่ยวกับการสำรองฐานข้อมูล SQL Server นอกจากนี้คุณต้องเพิ่มการอ้างอิงไปยังไลบรารี SQL-DMO ไปยังไฟล์ global.asa ต่อไปนี้เป็นการอ้างอิงถึง SQL Server 2000:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: <!-metadata type = ชื่อ typelib = microsoft SQLDMO OBJECT LIBRARY UUID = {10010001-E260-11CF-AE68-00AA004A34D5} รุ่น = 8.0-> |
รหัสตัวอย่างของบทความนี้ใช้กับ SQL 7.0, MSDE และ SQL Server 2000
ความสุขและความเศร้าโศก
การใช้วัตถุ SQL-DMO ทำให้ผู้คนมีความสุขและเศร้า มันมีคุณสมบัติที่หลากหลายจนไม่ทราบวิธีการใช้งาน บทความนี้กล่าวถึงคุณสมบัติของวัตถุและวิธีการที่เกี่ยวข้องในตัวอย่างเท่านั้น คุณสามารถค้นหาข้อมูลที่เกี่ยวข้องมากมายเกี่ยวกับการสอนออนไลน์ SQL Server
sqldmo.sqlserver
ใช้เพื่อเชื่อมต่อกับฐานข้อมูล SQL Server:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: - สลัว SRV ตั้งค่า srv = server.createObject (sqldmo.sqlserver) srv.logintimeout = 15 srv.connect servername ชื่อผู้ใช้รหัสผ่าน - |
ที่นี่ฐานข้อมูล SQL Server เชื่อมต่อโดยการแทนที่ชื่อผู้ใช้และรหัสผ่าน หากคุณต้องการใช้การตรวจสอบตัวตนของ NT ให้ตั้งค่าคุณสมบัติการเข้าสู่ระบบเป็น TRUE (จริง) ให้ละเว้นชื่อผู้ใช้และรหัสผ่านที่ใช้แทนและใช้ข้อมูลการลงทะเบียนของ NT
sqldmo.database
แสดงรายการฐานข้อมูลในเซิร์ฟเวอร์ ในตัวอย่างนี้ฐานข้อมูลที่ระบุไว้จะถูกสำรองไว้ รหัสต่อไปนี้แสดงรายการฐานข้อมูลในเซิร์ฟเวอร์ในเมนูแบบเลื่อนลง:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: - สลัว SRV dim objdb ตั้งค่า srv = server.createObject (sqldmo.sqlserver) srv.logintimeout = 15 srv.connect servername ชื่อผู้ใช้รหัสผ่าน ตั้งค่า objdb = server.createObject (sqldmo.database) - <เลือกชื่อ = fDatabase> - สำหรับแต่ละ objdb ใน srv.databases ถ้า objdb.systemobject = false แล้ว - <opovie> <%= objdb.name%> </portion> - สิ้นสุดถ้า ต่อไป - </เลือก> |
sqldmo.backupdevice
แสดงรายการอุปกรณ์สำรองที่ติดตั้งบนเซิร์ฟเวอร์ ฉันขอแนะนำให้ใช้อุปกรณ์สำรองเพื่อสำรองฐานข้อมูล เนื่องจากด้วยวิธีนี้คุณสามารถใช้ฟังก์ชั่นการตรวจสอบของ SQL-DMO เพื่อตรวจสอบสถานการณ์การสำรองข้อมูล รหัสต่อไปนี้แสดงรายการอุปกรณ์สำรองข้อมูลบนเซิร์ฟเวอร์:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: - สลัว SRV dim objdevice ตั้งค่า srv = server.createObject (sqldmo.sqlserver) srv.logintimeout = 15 srv.connect servername ชื่อผู้ใช้รหัสผ่าน ตั้งค่า objdevice = server.createObject (sqldmo.backupdevice) สำหรับแต่ละ objdevice ใน srv.backupdevices Response.write objdevice.name <br> ต่อไป - |
sqldmo.backup
นี่คือสิ่งที่เราต้องการใช้เพื่อสำรองวัตถุหลัก มันมีคุณสมบัติมากมายที่ช่วยให้เราสามารถสำรองข้อมูลในระดับเดียวกับตัวจัดการ SQL Enterprise ก่อนอื่นมาพูดคุยเกี่ยวกับคุณสมบัติที่ใช้ในตัวอย่างนี้
BackupSetName - ชื่อไฟล์สำรอง
ฐานข้อมูล - ฐานข้อมูลที่จะสำรองข้อมูล
การดำเนินการ - การสำรองข้อมูลทั้งหมดหรือแบบเพิ่ม มีตัวเลือกอื่น ๆ แต่มีเพียงสองนี้เท่านั้นที่ใช้ในตัวอย่าง
BackupSetDescription - คำอธิบายการสำรองข้อมูล
ไฟล์ - ตัวเลือกการสำรองข้อมูลไฟล์ ระบุเส้นทางและชื่อของไฟล์สำรองเช่น: C: /pubs.bak เมื่อใช้การสำรองข้อมูลไฟล์ชื่ออุปกรณ์สำรองข้อมูลต่อไปนี้ควรตั้งค่าเป็นว่าง
อุปกรณ์ - อุปกรณ์สำรองบนเซิร์ฟเวอร์ หากคุณใช้อุปกรณ์สำรองข้อมูลตัวเลือกการสำรองข้อมูลไฟล์ด้านบนควรตั้งค่าเป็นว่าง
TRUNCATELOG - ตัวเลือกบันทึกการสำรองข้อมูล ตัวเลือกคือ:
Nolog - ไม่มีการสำรองข้อมูลบันทึกการทำธุรกรรม
NotRuncate - บันทึกธุรกรรมสำรอง เครื่องหมายเวลามีอยู่ในบันทึก
ตัดทอน - บันทึกธุรกรรมสำรอง แต่ไม่เก็บบันทึกธุรกรรม
เริ่มต้น - หากตั้งค่าเป็นจริงอุปกรณ์สำรองจะแทนที่สื่อสำรองอื่น ๆ และกลายเป็นตัวเลือกแรก
นี่คือไฟล์ backup.asp ในตัวอย่าง:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: < %@ language = vbscript %> <html> <body> <!-มีข้อมูลการเข้าสู่ระบบทั้งหมด-> <!-#รวมไฟล์ = login.asp-> - Dim Objbackup 'สร้างวัตถุสำรอง ตั้งค่า objbackup = server.createObject (sqldmo.backup) 'ตั้งค่าคุณสมบัติ objbackup.backupsetName = คำขอ (fname) objbackup.database = คำขอ (fdatabase) objbackup.action = คำขอ (ฝ่าย) objbackup.backupsetDescription = คำขอ (fdescription) objbackup.files = คำขอ (fbackupfile) objbackup.devices = คำขอ (fdevice) objbackup.truncatelog = คำขอ (flog) objbackup.initialize = คำขอ (FINIT) 'ฐานข้อมูลสำรอง objbackup.sqlbackup srv 'ตัดการเชื่อมต่อจากเซิร์ฟเวอร์ srv.disconnect 'ปล่อย ตั้งค่า srv = ไม่มีอะไร ตั้งค่า objbackup = ไม่มีอะไร - <p> การสำรองข้อมูลเริ่มต้นใช้ <a href = devices.asp> ตรวจสอบ </a> ตัวเลือกเพื่อดูว่าเสร็จสมบูรณ์หรือไม่ <a href = default.asp> คลิกที่นี่ </a> เพื่อส่งคืน </p> </body> </html> |
การตรวจสอบสำรอง
หากคุณกำลังเขียนโปรแกรมใน VB หรือ C คุณสามารถใช้ทริกเกอร์เหตุการณ์เพื่อตรวจสอบกระบวนการสำรองข้อมูล แต่ไม่ใช่ใน ASP เราใช้วิธีการ RedBackupHeader ของวัตถุ SQLDMO.BackUpDevice เพื่อยืนยันว่าการสำรองข้อมูลสำเร็จหรือไม่
ด้านล่างนี้คือรหัสไฟล์ ASP ซึ่งแสดงชื่อของอุปกรณ์สำรองและให้ข้อมูลเกี่ยวกับการสำรองข้อมูลล่าสุด
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: < %@ language = vbscript %> <html> <body> <!-ข้อมูลเข้าสู่ระบบ-> <!-#รวมไฟล์ = login.asp-> <p> - dim objdevice dim objresults สลัว icount DIM XCOUNT 'สร้างวัตถุอุปกรณ์สำรอง ตั้งค่า objdevice = server.createObject (sqldmo.backupdevice) 'วนซ้ำจนกว่าจะพบอุปกรณ์จับคู่ สำหรับแต่ละ objdevice ใน srv.backupdevices ถ้า objdevice.name = คำขอ (fname) แล้ว 'ค้นหาอุปกรณ์ที่ตรงกันและเริ่มอ่านผลลัพธ์ ตั้งค่า objresults = objdevice.readbackupheader สำหรับ icount = 1 ถึง objresults.rows สำหรับ xcount = 1 ถึง objresults.columns%> <b> <%= objresults.columnname (xcount)%> </b>:: <%= objresults.getColumnString (ไอคอน, xcount)%> <br> < %ถัดไป %> <Hr> < %ถัดไป %> <%end ถ้า%> <%ถัดไป%> - srv.disconnect ตั้งค่า srv = ไม่มีอะไร ตั้งค่า objdevice = ไม่มีอะไร ตั้งค่า objresults = ไม่มีอะไร - </body> </html> |
เมธอด ReadBackupHeader ส่งคืนวัตถุ QueryResults ใช้แอตทริบิวต์แถวเพื่อรับหมายเลขบันทึกการสำรองข้อมูล จากนั้นค้นหาข้อมูลคอลัมน์สำหรับแต่ละแถวของระเบียน
คุณสมบัติอื่น ๆ
SQL-DMO ยังให้ความสามารถในการสำรองข้อมูลระยะไกลและการกู้คืน บทความนี้ไม่เกี่ยวข้องกับการกู้คืนฐานข้อมูล แต่ SQL-DMO มีฟังก์ชั่นการกู้คืนที่แข็งแกร่ง
แบ่งปัน: ระดับเริ่มต้นการพัฒนาขั้นพื้นฐาน: การเปรียบเทียบระหว่าง JSP และ ASP เนื่องจาก Microsoft เปิดตัว ASP (ActiveServerPage) จึงเป็นที่รักของนักพัฒนาเว็บสำหรับฟังก์ชั่นที่ทรงพลังและความเรียบง่ายและง่ายต่อการเรียนรู้ อย่างไรก็ตามมีปัญหาทั่วไปกับผลิตภัณฑ์ของ Microsoft และสามารถใช้กับแพลตฟอร์ม Windows เท่านั้นแม้ว่าจะสามารถใช้ใน Linux ได้โดยการเพิ่มการควบคุม