2007-09-23 17:07

利用 ASP 對 Access 資料庫重組

由於 Access 資料庫沒有支援的 SQL 指令可做重組 而且在做刪除資料時,還是不會將空間釋放出來 這種狀況只能從 Server 上做重組釋放的動作 但不是每個人都可以進入 Server 上做這個動作 所以另外的辦法就是從 ASP 網頁上執行
  1. <% 
  2. 'CompactDB 成功將回傳 true,失敗將回傳 false 
  3. 'DBUrl 以主目錄開始的資料庫相對位址字串 
  4. 'passwd 資料庫密碼,如果沒有請輸入空字串 
  5. Function CompactDB(DBUrl,passwd) 
  6.  Set fso = CreateObject("Scripting.FileSystemObject") 
  7.  Dim strDB 
  8.  strDB = server.MapPath(DBUrl) 
  9.  Dim strNewDB 
  10.  strNewDB = server.MapPath(DBUrl & ".tmp") 
  11.  
  12.  Dim login 
  13.  If(passwd<>"") Then 
  14.    login = ";Jet OLEDB:Database Password=" & passwd & ";" 
  15.  Else 
  16.    login = "" 
  17.  End If 
  18.  
  19.  If fso.FileExists(strDB) Then 
  20.      '壓縮資料庫 
  21.    Set Engine = CreateObject("JRO.JetEngine") 
  22.    strPvd = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" 
  23.    Engine.CompactDatabase strPvd&strDB&login,strPvd&strNewDB&login 
  24.    Set Engine = nothing 
  25.  
  26.      '刪除舊的資料庫 
  27.    fso.DeleteFile strDB 
  28.    fso.MoveFile strNewDB,strDB 
  29.  
  30.      '回傳已成功的訊息 
  31.    CompactDB = true 
  32.  Else 
  33.      '回傳失敗訊息 
  34.    CompactDB = false 
  35.  End If 
  36.  Set fso = nothing 
  37. End Function 
  38. %> 
檔案連結

0 回應: