ถ้าคุณลบข้อมูลหรือวัตถุในฐานข้อมูล Access หรือลบวัตถุในโครงการ Access ฐานข้อมูล Access หรือโครงการ Access อาจกระจัดกระจายและใช้พื้นที่ดิสก์ได้อย่างมีประสิทธิภาพน้อยลง การบีบอัดฐานข้อมูล Access หรือโครงการ Access จะคัดลอกไฟล์และจัดระเบียบวิธีการจัดเก็บไฟล์บนดิสก์ใหม่ การบีบอัดจะปรับประสิทธิภาพของทั้งฐานข้อมูล Access และโครงการ Access ให้เหมาะสม
ดังนั้นเมื่อเราพบว่าโปรแกรม ASP ทำงานช้าจนทนไม่ได้เนื่องจากมีฐานข้อมูลเพิ่มมากขึ้น เราจึงคิดที่จะบีบอัดมัน แต่วิธีการทั่วไปคือการดาวน์โหลดในเครื่องแล้วใช้ MSaccess เพื่อดำเนินการบีบอัดให้เสร็จสิ้น จากนั้นจึงอัปโหลด!
ควรสังเกตว่าโปรแกรมนี้เชื่อมต่อกับกลไก JET ผ่านการอนุญาต FSO ดังนั้นก่อนใช้งานโปรดยืนยันว่าเซิร์ฟเวอร์ของคุณรองรับการอนุญาต FSO (วัตถุระบบไฟล์) และติดตั้งไดรเวอร์ ACCESS ล่าสุด! เพื่อความปลอดภัย กรุณาสำรองฐานข้อมูลเดิมก่อนทำการบีบอัด! สภาพแวดล้อมการทำงานที่ผ่านการทดสอบ:
WIN98SE+PWS, WIN2000+IIS5.0
ต่อไปนี้คือซอร์สโค้ดที่ฉันรวบรวม คัดลอกและบันทึกเป็น compact.asp และอัปโหลดไปยังไดเร็กทอรีที่มีฐานข้อมูลอยู่สำหรับการใช้งานปกติ
<html>
<หัว>
<title>โปรแกรมบีบอัดฐานข้อมูล ACCESS</title>
</หัว>
<body bgcolor="e0f8ef">
<div>
<div align="center"><font color="#3300FF">
<b><font size="5">โปรแกรมบีบอัดฐานข้อมูลออนไลน์ Universal ACCESS</font></b></font><br>
</div>
<div><br>
โปรแกรมนี้เชื่อมต่อกับเอ็นจิ้น JET ผ่านการอนุญาต FSO
ดังนั้น โปรดยืนยันว่าเซิร์ฟเวอร์ของคุณรองรับ FSO ก่อนใช้งาน
(filesystemobject) สิทธิ์และติดตั้งไดรเวอร์ ACCESS ล่าสุด!
เพื่อความปลอดภัย กรุณาสำรองฐานข้อมูลเดิมก่อนทำการบีบอัด! </div><br>
<div align="center">สภาพแวดล้อมการทำงาน: WIN98SE+PWS, WIN2000+IIS5.0 <br>
-
ค่าคอนต์ JET_3X = 4
ฟังก์ชั่น CompactDB (dbPath, boolIs97)
Dim fso, เครื่องยนต์, strDBPath
strDBPath = ซ้าย(dbPath,instrrev(DBPath,""))
ตั้งค่า fso = CreateObject("Scripting.FileSystemObject")
ถ้า fso.FileExists(dbPath) แล้ว
ตั้งค่า Engine = CreateObject("JRO.JetEngine")
ถ้า boolIs97 = "True" จากนั้น
Engine.CompactDatabase "ผู้ให้บริการ = Microsoft.Jet.OLEDB.4.0; แหล่งข้อมูล = " & dbpath, _
"ผู้ให้บริการ=Microsoft.Jet.OLEDB.4.0;แหล่งข้อมูล=" & strDBPath & "temp.mdb;"
& "เจ็ต OLEDB:ประเภทเครื่องยนต์=" & JET_3X
อื่น
Engine.CompactDatabase "ผู้ให้บริการ = Microsoft.Jet.OLEDB.4.0; แหล่งข้อมูล = " & dbpath, _
"ผู้ให้บริการ=Microsoft.Jet.OLEDB.4.0;แหล่งข้อมูล=" & strDBPath & "temp.mdb"
สิ้นสุดถ้า
fso.CopyFile strDBPath & "temp.mdb",dbpath
fso.DeleteFile (strDBPath & "temp.mdb")
ตั้งค่า fso = ไม่มีเลย
ตั้งค่าเครื่องยนต์ = ไม่มีเลย
CompactDB = "ฐานข้อมูลของคุณ " & dbpath & " ถูกบีบอัด" & vbCrLf
อื่น
CompactDB = "ไม่พบเส้นทางฐานข้อมูลหรือชื่อที่คุณป้อน โปรดลองอีกครั้ง" & vbCrLf
สิ้นสุดถ้า
สิ้นสุดฟังก์ชัน
-
</div>
</div>
<ชื่อแบบฟอร์ม = "compact" method = "โพสต์" action = "compact.asp">
<div align="center">
<font size="2"><b><font color="#FF0000">
ตัวเลือกการบีบอัด โปรดกรอกอย่างระมัดระวัง! </font></b><br>
<br>
ป้อนชื่อเต็มของฐานข้อมูล:
<ประเภทอินพุต = "ข้อความ" ชื่อ = "dbpath">
(รวมถึงส่วนขยาย เช่น MDB, ASA, ASP ฯลฯ)<br>
<br>
<input type="ช่องทำเครื่องหมาย" name="boolIs97" value="True">
ตรวจสอบว่าเป็นฐานข้อมูล ACCESS97 หรือไม่<br>
(ค่าเริ่มต้นคือฐานข้อมูล ACCESS2000)<br>
<br>
<input type="submit" name="submit" value="ยืนยันการบีบอัด">
</font></div>
</แบบฟอร์ม>
<div align="center"><font size="2">
-
หรี่ dbpath, boolIs97
dbpath = คำขอ ("dbpath")
boolIs97 = request("boolIs97")
ถ้า dbpath <> "" จากนั้น
dbpath = เซิร์ฟเวอร์ mappath (dbpath)
response.write (CompactDB (dbpath, boolIs97))
สิ้นสุดถ้า
-
<br>
</font></div></body></html>