• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    在VB中壓縮ACCESS 數據庫

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 48次 | 進入軟件測試論壇討論

    領測軟件測試網 作者:石運偉

      如果您在 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數據庫時可以嘗試進行這樣的壓縮,您應該會發現我說的沒有錯。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>