深入淺析ASP線上壓縮access資料庫的方法
阿新 • • 發佈:2020-09-16
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資料庫內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!