|   |  | 
        
          | 
			  
			    | 茫茫網海中的冷日 發生過的事,不可能遺忘,只是想不起來而已!
 |  
				|  | 恭喜您是本站第 1746478 
										位訪客!
					 登入  | 註冊 |  |  | 
      
      
        
                      | 
 
 
 
 
 
 | 
                      
	| 發表者 | 討論內容 |  
	| 冷日 (冷日)
 | 發表時間: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"  |  
	|  |  
 討論串
 
 
                     |