CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

为什么 数据库文件异常变大 VB编程写数据库,4000条1.2MB,5000条20.1MB

楼主konglongkill(大龙)2003-12-03 10:53:57 在 VB / 数据库(包含打印,安装,报表) 提问

我再用VB操作数据库时,每次将一行记录,ADDNew   进数据库,开始文件大小没什么变化,再我输入了4000多条时,文件大小为1.02MB,可是,到5000条时,发现文件大小变为20.1MB,我又把原来的1.02MB得数据库文件手动增加1000条记录,文件大小没什么大变化,什么原因能造成,数据库变大呢?  
   
  我用的是ACCESS2000格式数据库文件,ADO控件,我再程序中,每次访问完数据库,都将数据库连接Close掉了,原来这样操作4000多次没出问题,什么原因能造成这样的现象,又怎么去掉这些多余的不分呢? 问题点数:0、回复次数:26Top

1 楼tonykong(烤鸡翅膀我最爱吃)回复于 2003-12-03 11:01:37 得分 0

收缩数据库。Top

2 楼yoki(小马哥--鬓微霜,又何妨)回复于 2003-12-03 11:16:51 得分 0

是否加入了图片?  
  Top

3 楼konglongkill(大龙)回复于 2003-12-03 11:20:23 得分 0

如何收缩数据库?  
  数据库中的记录全部为文本型,文字记录,无大的图片之类Top

4 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2003-12-03 12:33:44 得分 0

如何使用   ADO   來压缩或修复   Microsoft   Access   文件?      
  版本:VB6    
   
  以前使用   DAO   時,Microsoft   有提供   CompactDatabase   Method   來压缩   Microsoft   Access   文件,RepairDatabase   Method   來修复损坏的   Microsoft   Access   文件,。可是自从   ADO   出來之后,好像忘了提供相对的压缩及修复   Microsoft   Access   文件的功能。  
   
  現在   Microsoft   发现了这个问题了,也提供了解決方法,不过有版本上的限制!限制說明如下:  
   
  ActiveX   Data   Objects   (ADO),   version   2.1    
  Microsoft   OLE   DB   Provider   for   Jet,   version   4.0    
   
  這是   Microsoft   提出的   ADO   的延伸功能:Microsoft   Jet   OLE   DB   Provider   and   Replication   Objects   (JRO)  
   
  这个功能在   JET   OLE   DB   Provider   version   4.0   (Msjetoledb40.dll)   及   JRO   version   2.1   (Msjro.dll)   中第一次被提出!  
  這些必要的   DLL   文件在您安裝了   MDAC   2.1   之后就有了,您可以在以下的网页中下载   MDAC   的最新版本!  
   
  Universal   Data   Access   Web   Site  
   
  在下载之前先到   VB6   中檢查一下,【控件】【設定引用項目】中的   Microsoft   Jet   and   Replication   Objects   X.X   library   如果已经是   2.1   以上的版本,您就可以不用下载了!  
   
  在您安裝了   MDAC   2.1   或以上的版本之后,您就可以使用   ADO   來压缩或修复   Microsoft   Access   文件,下面的步骤告訴您如何使用   CompactDatabase   Method   來压缩   Microsoft   Access   文件:  
   
  1、新建一個新表单,选择功能表中的【控件】【設定引用項目】。  
  2、加入   Microsoft   Jet   and   Replication   Objects   X.X   library,其中   (   X.X   大于或等于   2.1   )。  
  3、在适当的地方加入以下的程序代码,記得要修改   data   source   的內容及目地文件的路径:  
   
  Dim   jro   As   jro.JetEngine  
  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"   '目的文件  
   
  在   DAO   3.60   之后,RepairDatabase   Method   已经无法使用了,以上的程序代码显示了   ADO   CompactDatabase   Method   的用法,而它也取代了   DAO   3.5   時的   RepairDatabase   method!    
  Top

5 楼jpinglee(想去海边)回复于 2003-12-03 12:41:05 得分 0

我也想知道怎么收缩数据库?  
  是不是产生了"垃圾"文件?Top

6 楼hupeng213(小鹏)回复于 2003-12-03 14:07:04 得分 0

access   数据库在使用的一段时间后,会出现突然使用空间很大的情况。  
  打开数据库后,在工具栏里选择整理数据库就行了。  
  不会破坏数据记录,但占用空间就会恢复。Top

7 楼nuago()回复于 2003-12-03 14:30:00 得分 0

UpTop

8 楼DawnPine(拂晓的松)回复于 2003-12-03 14:45:31 得分 0

手工操作:  
  用access打开要处理的文件,从菜单选:  
  工具、数据库实用工具、压缩和修复数据库  
  稍等片刻就OK了。  
   
  如果编程实现的话,可用楼上所说的JRO对象。楼上已经说得很详细了,我就不多说了。Top

9 楼Leftie(左手,为人民币服务)回复于 2003-12-03 14:50:07 得分 0

如果为SQL数据库,则清除日志文件  
  如果为ACCESS数据库,则压缩数据库Top

10 楼lirh(编程巨烂)回复于 2003-12-04 09:09:06 得分 0

uPTop

11 楼bigspook(开心就好)回复于 2003-12-04 09:36:21 得分 0

upTop

12 楼tweeg_nee(冰愁水绪)回复于 2003-12-04 09:53:03 得分 0

对啊,把数据库压缩一下Top

13 楼wangxuejun(计算机低手)回复于 2003-12-04 13:38:59 得分 0

如果不用ADO,只用DATA控件操作数据库,可有办法压缩ACCESS数据?Top

14 楼konglongkill(大龙)回复于 2003-12-04 14:07:58 得分 0

什么原因   或什么   情况下回造成   数据库   文件变大呢?  
  是不是没有Close     ,还有什么要注意的呢?Top

15 楼chao778899(220330)回复于 2003-12-04 14:37:37 得分 0

和CLOSE没关系,先在工具栏里压缩一下吧Top

16 楼ZWARJH(ZWARJH)回复于 2003-12-09 14:35:05 得分 0

有密码怎么办?Top

17 楼aoenzh(独孤大虾)回复于 2003-12-09 15:41:52 得分 0

upTop

18 楼jilate()回复于 2003-12-09 18:41:57 得分 0

会不会是数据库的容量分配问题,类似与SQL   SERVEFR   每次分配   比如说   10%  
  那羊这样就有可能一下变大很多了Top

19 楼Dublue(谁抢了我的名字)回复于 2003-12-09 20:58:27 得分 0

你分配控件是按照百分比分配的吧Top

20 楼Dublue(谁抢了我的名字)回复于 2003-12-09 20:58:42 得分 0

说错了,是空间Top

21 楼vincentzpf(飞宇)回复于 2003-12-10 08:37:39 得分 0

我想应该是你对数据库进行了多次操作,比如新增,删除这样的操作,那数据库就会增大。  
  你应该用程式或是手工对数据库做定期的修复和压缩的操作。因为在Access的数据库中你如果删除了这个数据,可是在它的数据库中就会存在空格的地方。所以要做以上操作。Top

22 楼xzp1030(山角)回复于 2003-12-10 09:35:07 得分 0

学习!Top

23 楼dy03(dy03)回复于 2003-12-10 09:51:38 得分 0

up  
  Top

24 楼of123()回复于 2003-12-10 10:21:28 得分 0

如果不用ADO,只用DATA控件操作数据库,可有办法压缩ACCESS数据?  
  有密码怎么办?  
   
  DAO:  
  DBEngine.CompactDataBase   "原库名",   "新库名",   ,   ,   ";pwd=密码"  
  实例例如:  
  DBEngine.CompactDatabase   "C:\Db1.mdb",   "C:\Db2.mdb",   ,   ,   ";pwd=1"    
   
  ADO:  
  JRO.CompactDatabase   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="   &   strSource   &   ";Jet   OLEDB:Database   Password="   &   strPassword,   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="   &   strDestDB   &   ";Jet   OLEDB:Database   Password="   &   strPassword  
  Top

25 楼cuizm(射天狼 http://www.j2soft.cn/)回复于 2003-12-10 10:46:36 得分 0

压缩一下数据库,在ACCESS中有压缩的工具!Top

26 楼ZWARJH(ZWARJH)回复于 2003-12-10 10:56:18 得分 0

如果我想生成另一个数据库,只是压现在的数据库,用程序怎么做Top

相关问题

  • vb数据库编程
  • 关于VB 的数据库编程
  • VB编程的数据库问题
  • vb 数据库编程的好书
  • SQL SERVER/vb数据库编程时,数据库中Null值的处理?
  • 数据库编程
  • 谁能推荐一本VB数据库编程的书
  • 用VB进行mdb数据库编程,如何进行备份?
  • 如何在单机下学习VB网络数据库编程?
  • 怎样用vb编程在access数据库中存取图片?

关键词

  • vb6
  • 数据库
  • 文件
  • 控件
  • ado
  • 修复
  • access
  • 版本
  • 数据
  • vb

得分解答快速导航

  • 帖主:konglongkill

相关链接

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

广告也精彩

反馈

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