2007-09-23

利用 ASP 對 Access 資料庫重組

由於 Access 資料庫沒有支援的 SQL 指令可做重組 而且在做刪除資料時,還是不會將空間釋放出來 這種狀況只能從 Server 上做重組釋放的動作 但不是每個人都可以進入 Server 上做這個動作 所以另外的辦法就是從 ASP 網頁上執行
<%
'CompactDB 成功將回傳 true,失敗將回傳 false
'DBUrl 以主目錄開始的資料庫相對位址字串
'passwd 資料庫密碼,如果沒有請輸入空字串
Function CompactDB(DBUrl,passwd)
  Set fso = CreateObject("Scripting.FileSystemObject")
  Dim strDB
  strDB = server.MapPath(DBUrl)
  Dim strNewDB
  strNewDB = server.MapPath(DBUrl & ".tmp")

  Dim login
  If(passwd<>"") Then
    login = ";Jet OLEDB:Database Password=" & passwd & ";"
  Else
    login = ""
  End If

  If fso.FileExists(strDB) Then
      '壓縮資料庫
    Set Engine = CreateObject("JRO.JetEngine")
    strPvd = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    Engine.CompactDatabase strPvd&strDB&login,strPvd&strNewDB&login
    Set Engine = nothing

      '刪除舊的資料庫
    fso.DeleteFile strDB
    fso.MoveFile strNewDB,strDB

      '回傳已成功的訊息
    CompactDB = true
  Else
      '回傳失敗訊息
    CompactDB = false
  End If
  Set fso = nothing
End Function
%>
檔案連結

沒有留言:

張貼留言

你好!歡迎你在我的 Blog 上留下你寶貴的意見。