|
|
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已! |
|
恭喜您是本站第 1735123
位訪客!
登入 | 註冊
|
|
|
|
發表者 |
討論內容 |
冷日 (冷日) |
發表時間:2008/3/19 5:38 |
- Webmaster

- 註冊日: 2008/2/19
- 來自:
- 發表數: 15773
|
- [分享]用ASP壓縮Access資料庫
- 在web的系統中,如果是使用Access當資料庫的話,往往都會面臨一個問題,
就是資料刪除後,資料庫的檔案大小還是一樣大, 它並沒有因為裡面的資料被刪了而減少...
為了不讓我們的Access肆無忌憚的長大, 所以我們必須修復壓縮它一下!
在Access的[工具/資料庫公用程式]中, 有個[修復及壓縮資料庫], 但如果我們的資料庫放在那遙遠的主機上的話, 哪他下載下來"修理"完後再丟上去是有點浪費時間的... (尤其遇到哪種主機代管商的網路不穩時...)
以下是一個壓縮資料庫的函數, 使用前提:主機須有安裝MDAC 2.1以上,可以使用FileSystemObject
Sub CompactDB(strDBFileName)
Set fso = CreateObject("Scripting.FileSystemObject")
dim strOldDB
strOldDB = server.MapPath(strDBFileName)
dim strNewDB
strNewDB = server.MapPath("New" & strDBFileName)
if fso.FileExists(strOldDB) then
'壓縮資料庫
Set Engine = Server.CreateObject("JRO.JetEngine")
strPvd = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Engine.CompactDatabase strPvd & strOldDB , strPvd & strNewDB
set Engine = nothing
'刪除舊的資料庫
fso.DeleteFile strOldDB
' 將壓縮好的資料庫改回來
fso.MoveFile strNewDB, strOldDB
response.write "資料庫壓縮完畢!"
else
response.write "找不到指定的資料庫!"
end if
set FSO = nothing
end sub
呼叫方式
call CompactDB("yourdb.mdb")
如果你的資料庫是access 97的話, 就修改一下Engine.CompactDatabase 那段 ,將
Engine.CompactDatabase strPvd & strOldDB , strPvd & strNewDB
改成
Engine.CompactDatabase strPvd & strOldDB , strPvd & strNewDB & ";Jet OLEDB:Engine Type=4"
|
|
討論串
|