文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
文本框中光标位置的获得
用VB导入导出你的IE收藏夹
VB应用程序访问SQL Server方法探讨
VB访问SQL Server数据库技术全揭密
自动上网抓数据的机器人
自己的IE——用VB制作浏览器
VB中如何保存Webbrowser中的整个页面..
在VB中该如何控制其它程序的弹出窗口..
保存webbrowser中的HTML内容
破译动网验证码的简单方法
轻松获取QQ密码
VB.NET获取硬盘序列号的方法
WEBBROWSER 技巧一(收藏)
VB自动登陆网络站点详解(二):Inet..
获取webbrowser控件网页的源码
WebBrowser控件说明
关于用VB做更漂亮的窗体的思考
VB中访问存储过程的几种办法
VB6中改变屏幕的分辨率和刷新频率
VB编写一个能显示百分比的自定义进度..
公农历转换VB类
VB.NET窗口渐淡关闭
使用VB实现邮箱自动注册(二):修改..
VB.NET轻松实现任务栏程序
VB.NET启动外部程序
利用vb实现图片上传
VB实现局域网内的文件传输
VB 一个Function传回多个值
在VB中实现多线程
VB 手机号码编码程序


技术教程 -> VB教程 ->  
在VB中压缩ACCESS 数据库
来源:转载   人气:942   录入时间:2007-11-8
     如果您在 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
   
   
   




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987