談Access數據庫在線壓縮的實現_Access數據庫教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:Access數據庫的存儲上限Access數據庫的存儲上限 Access 規格 Microsoft Access 數據庫規格 Access 數據庫 屬性 最大值 Microsoft Access 數據庫 (.mdb) 文件大小 2G 字節減去系統對象所需的空間。 數據庫中的對象個數 32,768 模塊(包括“內含模塊”屬性為“是”的窗體和報表) 1,0
如果在 Access 數據庫中刪除數據或對象,或者在 Access 項目中刪除對象,Access 數據庫或 Access 項目可能會產生碎片并會降低磁盤空間的使用效率。壓縮 Access 數據庫或Access項目實際上是復制該文件,并重新組織文件在磁盤上的存儲方式。壓縮同時優化了 Access 數據庫和 Access 項目的性能。所以我們在對日益增大的數據庫導致的ASP程序慢得無法忍受的時候,就想到了要壓縮他。但常規的做法把他下載到本地然后用MSaccess來完成壓縮操作,然后再上傳!后來我想是否可以在線實現對ACCESS數據庫的壓縮呢?為此我查了一些資料,但還是不得要領。
我在本機測試獲得成功,又上網對自己的動網論壇實施了壓縮操作結果也完全正常,數據庫從原來的3.7M壓縮到了2.1M從而證實是可行的。需要注意的是:本程序其實是通過FSO權限和JET引擎連接,因此在使用之前請確認你的服務器支持FSO(filesystemobject)權限并安裝的ACCESS最新驅動!從安全出發,請在壓縮之前備份原始數據庫!已經測試通過的運行環境:
WIN98SE+PWS、WIN2000+IIS5.0
下面是我整理后的源代碼,復制另存為compact.asp并上傳到數據庫所在目錄即可正常使用。
<html>
<head>
<title>ACCESS數據庫壓縮程序</title>
</head>
<body bgcolor="e0f8ef">
<div>
<div align="center"><font color="#3300FF"><b><font size="5">通用ACCESS數據庫在線壓縮程序</font></b></font><br>
</div>
<div><br>
本程序其實是通過FSO權限和JET引擎連接,因此在使用之前請確認你的服務器支持FSO(filesystemobject)權限并安裝的ACCESS最新驅動!從安全出發,請在壓縮之前備份原始數據庫!</div><br>
<div align="center">運行環境:在WIN98SE+PWS、WIN2000+IIS5.0 <br>
<%
Const JET_3X = 4
Function CompactDB(dbPath, boolIs97)
Dim fso, Engine, strDBPath
strDBPath = left(dbPath,instrrev(DBPath,"\"))
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(dbPath) Then
Set Engine = CreateObject("JRO.JetEngine")
If boolIs97 = "True" Then
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb;" _
& "Jet OLEDB:Engine Type=" & JET_3X
Else
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb"
End If
fso.CopyFile strDBPath & "temp.mdb",dbpath
fso.DeleteFile(strDBPath & "temp.mdb")
Set fso = nothing
Set Engine = nothing
CompactDB = "你的數據庫, " & dbpath & ", 已經被壓縮" & vbCrLf
Else
CompactDB = "你輸入的數據庫路徑或名稱未找到,請重試" & vbCrLf
End If
End Function
%>
</div>
</div>
<form name="compact" method="post" action="compact.asp">
<div align="center"><font size="2"><b><font color="#FF0000">壓縮選項,請仔細填寫!</font></b><br>
<br>
輸入數據庫全稱:
<input type="text" name="dbpath">
(包括擴展名,如MDB、ASA、ASP等)<br>
<br>
<input type="checkbox" name="boolIs97" value="True">
檢查是否為ACCESS97數據庫<br>
(默認為ACCESS2000的數據庫)<br>
<br>
<input type="submit" name="submit" value="確認壓縮">
</font></div>
</form>
<div align="center"><font size="2">
<%
Dim dbpath,boolIs97
dbpath = request("dbpath")
boolIs97 = request("boolIs97")
If dbpath <> "" Then
dbpath = server.mappath(dbpath)
response.write(CompactDB(dbpath,boolIs97))
End If
%>
<br>
</font></div>
分享:揭秘ADO連接Access的幾種規范做法ADO數據對象用來連接數據庫的方式有兩種,分別是ODBC和OLE DB方式 (一) 使用OLE DB方式 ******************************************************** *** OLE DB Provider for Microsoft Jet ******************************************************** Dim oCo
相關Access數據庫教程:
- 相關鏈接:
- 教程說明:
Access數據庫教程-談Access數據庫在線壓縮的實現
。