麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > Access > 正文

在VB中壓縮ACCESS數(shù)據(jù)庫

2024-09-07 19:05:02
字體:
供稿:網(wǎng)友
如果您在access數(shù)據(jù)庫、Access項(xiàng)目中刪除數(shù)據(jù)或?qū)ο螅赡軙?huì)產(chǎn)生碎片并導(dǎo)致磁盤空間使用效率的降低。同時(shí),數(shù)據(jù)庫文件的大小并未減小,而是不斷的增大,直至您的硬盤沒有空間。有沒有好的處理方法呢?其實(shí),在Access中可以對(duì)數(shù)據(jù)庫進(jìn)行壓縮優(yōu)化以提升Access數(shù)據(jù)庫和Access項(xiàng)目的性能,這樣的壓縮處理的實(shí)質(zhì)是復(fù)制該文件,并重新組織文件在磁盤上的存儲(chǔ)方式。但是,在Access項(xiàng)目中進(jìn)行這樣的壓縮不會(huì)影響到數(shù)據(jù)庫對(duì)象(例如表或視圖),因?yàn)樗鼈兪谴鎯?chǔ)在Microsoft SQL Server數(shù)據(jù)庫中而不是在Access項(xiàng)目本身中。同樣,這樣的壓縮也不會(huì)影響到Access項(xiàng)目中的自動(dòng)編號(hào)。在Access數(shù)據(jù)庫中,如果已經(jīng)從表的末尾刪除了記錄,壓縮該數(shù)據(jù)庫是就會(huì)重新設(shè)置自動(dòng)編號(hào)值。添加的下一個(gè)記錄的自動(dòng)編號(hào)值將會(huì)比表中沒有刪除的最后記錄的自動(dòng)編號(hào)值大一。

下面介紹如何在VB中用一個(gè)CompactJetDatabase過程實(shí)現(xiàn)對(duì)Access數(shù)據(jù)庫文件的壓縮處理,在這個(gè)過程中有一個(gè)可選參數(shù),就是在壓縮前你是否需要把原有的數(shù)據(jù)庫文件備份到臨時(shí)目錄(True或False)。我用此辦法使21.6MB的數(shù)據(jù)庫壓縮到僅僅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

‘檢查數(shù)據(jù)庫文件是否存在

If Len(Dir(Location)) Then

‘如果需要備份就執(zhí)行備份

If BackupOriginal = True Then

strBackupFile = GetTemporaryPath & "backup.mdb"

If Len(Dir(strBackupFile)) Then Kill strBackupFile

FileCopy Location, strBackupFile

End If

‘創(chuàng)建臨時(shí)文件名

strTempFile = GetTemporaryPath & "temp.mdb"

If Len(Dir(strTempFile)) Then Kill strTempFile

‘通過DBEngine壓縮數(shù)據(jù)庫文件

DBEngine.CompactDatabase Location, strTempFile

‘刪除原來的數(shù)據(jù)庫文件

Kill Location

‘拷貝剛剛壓縮過臨時(shí)數(shù)據(jù)庫文件至原來位置

FileCopy strTempFile, Location


‘刪除臨時(shí)文件

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數(shù)據(jù)庫時(shí)可以嘗試進(jìn)行這樣的壓縮,您應(yīng)該會(huì)發(fā)現(xiàn)我說的沒有錯(cuò)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品首页 | 久久亚洲精品国产一区 | 国产亚洲自拍一区 | 91网在线播放 | 免费在线观看亚洲 | 懂色av懂色aⅴ精彩av | 国产精品久久久久久久久久10秀 | 久久久青青草 | 天堂精品 | 国产精品久久久久久久久粉嫩 | 亚洲国产高清自拍 | 粉嫩av一区二区三区四区在线观看 | 深夜激情视频 | 神秘电影91| h色视频网站 | 高清国产福利 | www久久国产 | 99精品视频在线观看免费 | 国产精品一区99 | 国产精品久久久久久久久久三级 | 99精品国产一区二区三区 | 高清在线观看av | 精品一二三区视频 | 免费国产在线视频 | 免费久久久久久久 | 国产日韩中文字幕 | 国产中文av在线 | 国产一级一区二区 | 亚洲欧美在线看 | 自拍亚洲伦理 | 国产精品热 | 免费a视频在线观看 | 亚洲成在人| 成人羞羞视频在线观看免费 | 大学生一级毛片在线视频 | 日本免费不卡一区二区 | 成人午夜视频在线观看 | 亚洲av一级毛片特黄大片 | 无遮挡一级毛片视频 | 9191色| 九九热精品免费视频 |