Jika Anda menghapus data atau objek di database Access, atau menghapus objek di proyek Access, database Access atau proyek Access mungkin menjadi terfragmentasi dan menggunakan ruang disk dengan kurang efisien. Mengompresi database Access atau proyek Access sebenarnya menyalin file dan mengatur ulang cara file disimpan di disk. Kompresi mengoptimalkan kinerja database Access dan proyek Access.
Jadi ketika kami menemukan program ASP sangat lambat karena database yang terus bertambah, kami berpikir untuk mengompresinya. Namun pendekatan konvensionalnya adalah mengunduhnya secara lokal dan kemudian menggunakan MSaccess untuk menyelesaikan operasi kompresi, lalu mengunggahnya!
Perlu dicatat bahwa program ini sebenarnya terhubung ke mesin JET melalui izin FSO, jadi sebelum menggunakannya, harap konfirmasikan bahwa server Anda mendukung izin FSO (objek sistem file) dan instal driver ACCESS terbaru! Demi alasan keamanan, harap buat cadangan database asli sebelum mengompresi! Lingkungan berjalan yang telah lulus pengujian:
WIN98SE+PWS, WIN2000+IIS5.0
Berikut ini adalah kode sumber yang saya kompilasi. Salin dan simpan sebagai compact.asp dan unggah ke direktori tempat database berada untuk penggunaan normal.
<html>
<kepala>
<title>Program kompresi basis data ACCESS</title>
</kepala>
<tubuh bgcolor="e0f8ef">
<div>
<div align="center"><font color="#3300FF">
<b><font size="5">Program kompresi online database Universal ACCESS</font></b></font><br>
</div>
<div><br>
Program ini sebenarnya terhubung ke mesin JET melalui izin FSO.
Oleh karena itu, harap konfirmasi bahwa server Anda mendukung FSO sebelum menggunakannya.
(filesystemobject) izin dan instal driver ACCESS terbaru!
Demi alasan keamanan, harap buat cadangan database asli sebelum mengompresi! </div><br>
<div align="center">Lingkungan pengoperasian: WIN98SE+PWS, WIN2000+IIS5.0 <br>
<%
Konstanta JET_3X = 4
Fungsi CompactDB(dbPath, boolIs97)
Redupkan fso, Mesin, strDBPath
strDBPath = kiri(dbPath,instrrev(DBPath,""))
Setel fso = CreateObject("Scripting.FileSystemObject")
Jika fso.FileExists(dbPath) Kemudian
Setel Mesin = CreateObject("JRO.JetEngine")
Jika boolIs97 = "True" Lalu
Engine.CompactDatabase "Penyedia=Microsoft.Jet.OLEDB.4.0;Sumber Data=" & dbpath, _
"Penyedia=Microsoft.Jet.OLEDB.4.0;Sumber Data=" & strDBPath & "temp.mdb;"
& "Jet OLEDB:Jenis Mesin=" & JET_3X
Kalau tidak
Engine.CompactDatabase "Penyedia=Microsoft.Jet.OLEDB.4.0;Sumber Data=" & dbpath, _
"Penyedia=Microsoft.Jet.OLEDB.4.0;Sumber Data=" & strDBPath & "temp.mdb"
Akhiri Jika
fso.CopyFile strDBPath & "temp.mdb",dbpath
fso.DeleteFile(strDBPath & "temp.mdb")
Tetapkan fso = tidak ada
Setel Mesin = tidak ada
CompactDB = "Database Anda, " & dbpath & ", telah dikompresi" & vbCrLf
Kalau tidak
CompactDB = "Jalur atau nama database yang Anda masukkan tidak ditemukan, silakan coba lagi" & vbCrLf
Fungsi
Akhir Jika
Akhir
%>
</div>
</div>
<form name="compact" method="post" action="compact.asp">
<div align="tengah">
<font size="2"><b><font color="#FF0000">
Opsi kompresi, harap isi dengan cermat! </font></b><br>
<br>
Masukkan nama lengkap database:
<masukan tipe="teks" nama="dbpath">
(Termasuk ekstensi seperti MDB, ASA, ASP, dll.)<br>
<br>
<input type = "kotak centang" nama = "boolIs97" nilai = "Benar">
Periksa apakah itu adalah database ACCESS97<br>
(Defaultnya adalah database ACCESS2000)<br>
<br>
<input type="kirim" name="kirim" value="Konfirmasi kompresi">
</font></div>
</bentuk>
<div align="center"><font size="2">
<%
Redupkan dbpath, boolIs97
jalur db = permintaan("jalur db")
boolIs97 = permintaan("boolIs97")
Jika dbpath <> "" Lalu
dbpath = server.mappath(dbpath)
respon.write(CompactDB(dbpath,boolIs97))
Akhiri Jika
%>
<br>
</font></div></tubuh></html>