1. 程式人生 > 程式設計 >深入淺析ASP線上壓縮access資料庫的方法

深入淺析ASP線上壓縮access資料庫的方法

ASP線上壓縮ACCESS資料庫原理很簡單:利用JRO.JetEngine的壓縮功能建立一個新的資料庫檔案,然後把原來的刪掉、替換!既然這樣,壓縮程式只需幾行就ok了!

把下面的程式碼儲存為**.asp,資料庫檔案(db.md)放在相同目錄下,執行asp搞定!

<%
oldDB = server.mappath("db.mdb") '更改資料庫地址
newDB = server.mappath("db_new.mdb") '生成臨時檔案
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Engine = Server.CreateObject("JRO.JetEngine")
prov = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
Engine.CompactDatabase prov & OldDB,prov & newDB
set Engine = nothing
FSO.DeleteFile oldDB '刪除臨時檔案
FSO.MoveFile newDB,oldDB
set FSO = Nothing
response.write "OK"
%>

下面是一個ASP線上壓縮ACCESS資料庫的封裝函式

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")
On Error Resume Next
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
 
If Err Then
response.write "<script LANGUAGE='javascript'>alert('無法識別資料庫型別.');history.go(-1);</script>"
response.end
end if
fso.CopyFile strDBPath & "temp.mdb",dbpath
fso.DeleteFile(strDBPath & "temp.mdb")
Set fso = nothing
Set Engine = nothing
CompactDB = "<script>alert('壓縮成功!');javascript:history.go(-1);</script>"
Else
CompactDB = "<script>alert('找不到資料庫!\n請檢查資料庫路徑是否輸入錯誤!');history.back();</script>"
End If
End Function 

總結

到此這篇關於ASP線上壓縮access資料庫的方法的文章就介紹到這了,更多相關ASP線上壓縮access資料庫內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!