国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

在VB中壓縮ACCESS數據庫

2024-07-21 02:12:24
字體:
來源:轉載
供稿:網友

如果您在access數據庫、access項目中刪除數據或對象,可能會產生碎片并導致磁盤空間使用效率的降低。同時,數據庫文件的大小并未減小,而是不斷的增大,直至您的硬盤沒有空間。有沒有好的處理方法呢?其實,在access中可以對數據庫進行壓縮優化以提升access數據庫和access項目的性能,這樣的壓縮處理的實質是復制該文件,并重新組織文件在磁盤上的存儲方式。但是,在access項目中進行這樣的壓縮不會影響到數據庫對象(例如表或視圖),因為它們是存儲在microsoft sql server數據庫中而不是在access項目本身中。同樣,這樣的壓縮也不會影響到access項目中的自動編號。在access數據庫中,如果已經從表的末尾刪除了記錄,壓縮該數據庫是就會重新設置自動編號值。添加的下一個記錄的自動編號值將會比表中沒有刪除的最后記錄的自動編號值大一。

下面介紹如何在vb中用一個compactjetdatabase過程實現對access數據庫文件的壓縮處理,在這個過程中有一個可選參數,就是在壓縮前你是否需要把原有的數據庫文件備份到臨時目錄(true或false)。我用此辦法使21.6mb的數據庫壓縮到僅僅300kb。

‘這些代碼可放在模塊中,在其他窗體也使用

public declare function gettemppath lib "kernel32" alias _

"gettemppatha" (byval nbufferlength as long, byval lpbuffer as string) as long

public const max_path = 260

public sub compactjetdatabase(location as string, optional backuporiginal as boolean = true)

on error goto compacterr

dim strbackupfile as string

dim strtempfile as string

‘檢查數據庫文件是否存在

if len(dir(location)) then

‘如果需要備份就執行備份

if backuporiginal = true then

strbackupfile = gettemporarypath & "backup.mdb"

if len(dir(strbackupfile)) then kill strbackupfile

filecopy location, strbackupfile

end if

‘創建臨時文件名

strtempfile = gettemporarypath & "temp.mdb"

if len(dir(strtempfile)) then kill strtempfile

‘通過dbengine壓縮數據庫文件

dbengine.compactdatabase location, strtempfile

‘刪除原來的數據庫文件

kill location

‘拷貝剛剛壓縮過臨時數據庫文件至原來位置

filecopy strtempfile, location


‘刪除臨時文件

kill strtempfile

else

end if

compacterr:

exit sub

end sub

public function gettemporarypath()

dim strfolder as string

dim lngresult as long

strfolder = string(max_path, 0)

lngresult = gettemppath(max_path, strfolder)

if lngresult <> 0 then

gettemporarypath = left(strfolder, instr(strfolder, chr(0)) - 1)

else

gettemporarypath = ""

end if

end function

以后您在使用access數據庫時可以嘗試進行這樣的壓縮,您應該會發現我說的沒有錯。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 米脂县| 镇赉县| 原平市| 威远县| 南汇区| 白银市| 遂宁市| 明溪县| 塔城市| 金湖县| 醴陵市| 张家界市| 石台县| 海南省| 商丘市| 河南省| 健康| 新野县| 秦安县| 康平县| 当雄县| 临湘市| 伊吾县| 嵊泗县| 芦山县| 吴忠市| 河北省| 通州区| 渑池县| 太康县| 承德市| 斗六市| 体育| 满城县| 武胜县| 勃利县| 炉霍县| 景东| 乌海市| 乌海市| 德钦县|