CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

ADO能不能压缩数据库文件?比如.MDB

楼主letian_now(乐天)2006-03-18 20:09:25 在 VB / 数据库(包含打印,安装,报表) 提问

请高手指教 问题点数:20、回复次数:6Top

1 楼iget(悟不透)回复于 2006-03-18 20:48:59 得分 4

ado不具有这个功能。  
  我以前用jro压缩过mdb。你引用看看,很容易清楚地。  
    C:\Program   Files\Common   Files\System\ado\msjro.dll  
    Microsoft   Jet   and   Replication   Objects   2.6   LibraryTop

2 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-18 21:04:32 得分 6

参考(采用dao方法压缩):  
   
  Option   Explicit  
   
  '   压缩   Access   数据库  
  Public   Sub   CompactJetDatabase(SourceFile   As   String,   Optional   Password   As   String,   Optional   BackupOriginal   As   Boolean   =   True)  
        On   Error   GoTo   CompactErr  
         
        Dim   strBackupFile   As   String  
        Dim   strTempFile   As   String  
   
        '   判断来源文件是否存在  
        If   Dir(SourceFile)   <>   ""   Then  
              '   如果需要备份原文件  
              If   BackupOriginal   =   True   Then  
                    strBackupFile   =   GetSourceFilePath(SourceFile)   &   "Backup.mdb"  
                    If   Dir(strBackupFile)   <>   ""   Then  
                          Kill   strBackupFile  
                    End   If  
                     
                    FileCopy   SourceFile,   strBackupFile  
              End   If  
               
              '   建立压缩文件名  
              strTempFile   =   GetSourceFilePath(SourceFile)   &   "Temp.mdb"  
              If   Dir(strTempFile)   <>   ""   Then  
                    Kill   strTempFile  
              End   If  
               
              '   通过   DBEngine   压缩文件,注意,您必须引用   Microsoft   DAO   3.xx   Object   Library  
              DBEngine.CompactDatabase   SourceFile,   strTempFile,   ,   ,   ";Pwd="   &   Password   &   ";"  
              '   删除旧文件  
              Kill   SourceFile  
               
              '   重新命名新文件名  
              Name   strTempFile   As   SourceFile  
        Else  
              MsgBox   SourceFile   &   "   文件找不到!",   vbExclamation  
        End   If  
         
  CompactErr:  
        If   Err.Number   <>   0   Then  
              MsgBox   "压缩数据库发生错误:"   &   vbCrLf   &   Err.Description   &   Err.Number,   vbCritical,   "错误"  
        End   If  
         
        On   Error   GoTo   0  
        Exit   Sub  
  End   Sub  
  Top

3 楼letian_now(乐天)回复于 2006-03-19 14:30:43 得分 0

谢谢faysky2()    
  TO   iget(悟不透):  
   
  你说的哪个怎么用安?Top

4 楼iget(悟不透)回复于 2006-03-19 18:17:50 得分 4

'===========================jdo   compress===================  
  '         On   Error   GoTo   EndH  
  '         Dim   JE   As   JRO.JetEngine  
  '         If   dbFile   <>   vbNullString   Then  
  '                 Set   JE   =   New   JRO.JetEngine  
  '                 On   Error   Resume   Next  
  '                 cmpFile   =   dbFile   &   ".~DB"  
  '                 Kill   cmpFile  
  '                 Err.Clear  
  '                 JE.CompactDatabase   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="   &   dbFile,   _  
  '                                   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="   &   dbFile   &   ".~DB"  
  '                 If   Err.Number   <>   0   Then   GoTo   EndH   '压缩未遂  
  '                 Kill   dbFile  
  '                 If   Err.Number   <>   0   Then   GoTo   EndH   '压缩未遂  
  '                 Name   cmpFile   As   dbFile  
  '         End   If  
  '===========================dao   compress===========================  
          On   Error   GoTo   EndH  
          Dim   DE   As   DAO.DBEngine  
          If   dbFile   <>   vbNullString   Then  
                  Set   DE   =   New   DAO.DBEngine  
                  On   Error   Resume   Next  
                  cmpFile   =   dbFile   &   ".~DB"  
                  Kill   cmpFile  
                  Err.Clear  
                  DE.CompactDatabase   dbFile,   cmpFile  
                  If   Err.Number   <>   0   Then   GoTo   EndH  
                  Kill   dbFile  
                  If   Err.Number   <>   0   Then   GoTo   EndH  
                  Name   cmpFile   As   dbFile  
          End   If  
   
  我以前的一段代码,给你参考把。  
  jro可以在引用列表里面添加   Microsoft   Jet   and   Replication   Objects   2.6   Library    
   
  这里注释掉的是jro的部分。  
  后来改成了ado,似乎我记得是为了98系统默认包含dao,安装包可以小一点,没有别的原因。Top

5 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2006-03-20 08:40:29 得分 6

关于此主题请参考以下文章(不要只看标题,请认真仔细地察看上述文章以及相关的评论):  
          如何使用   ADO   來压缩或修复   MS   Access   文件?(jro的使用)《其他...  
          http://access911.net/index.asp?u1=a&u2=71FAB71E  
   
   
   
   
   
   
   
  -----------------------   911   社区回帖个人签名   start   -----------------------  
   
  http://access911.net/csdn   无须注册提供附件上传功能,如果你提问的时候有附件请到上述地址上传并将链接复制粘贴。  
   
  http://access911.net   用   7   年时间整理了大量有关   Access   的原创资料,请有空的时候多用文章搜索功能  
   
  如果您有兴趣加入ACCESS编程的专项研究可以来QQ群“ACCESS上海研究班”看看,加入的方法请看这里《个性化的access911.net(七)QQ   群加入规则(专门讨论   ACCESS   的   )》  
  http://access911.net/?kbid;72FAB01E16DCECF3  
   
  -----------------------   911   社区回帖个人签名   end   -----------------------  
   
    向上看呦!Top

6 楼of123()回复于 2006-03-20 09:35:54 得分 0

1   引用   Microsoft   Jet   and   Replication   Objects   X.X   library,   其中   X.X   大于等于   2.1  
  2   代码    
  Set   jro   =   New   jro.JetEngine  
  jro.CompactDatabase   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=d:\nwind2.mdb",   _  
  "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=d:\abbc2.mdb;Jet   OLEDB:Engine   Type=4"Top

相关问题

  • 用ADO如何压缩一个ACCESS数据库(mdb文件)?
  • 在ADO中能压缩以及修复MDB 数据库文件吗?
  • 数据库压缩一问:(Access2000+ADO)
  • ADO 动态建立.mdb数据库,表
  • 在vb6中怎样压缩Access(mdb) 数据库
  • mdb数据库无法进行‘压缩和修复’100分!急!
  • VB怎样压缩后再备份mdb数据库?
  • 压缩数据库
  • MDB数据库
  • 用ADO怎样实现压缩和修复数据库?

关键词

  • .net
  • 文件
  • 数据库
  • ado
  • access
  • dbfile
  • cmpfile
  • strtempfile
  • 压缩
  • jro

得分解答快速导航

  • 帖主:letian_now
  • iget
  • faysky2
  • iget
  • changechange

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo