★★★★★ACCESS数据库为什么只能增大不能缩小啊!??!?!?!!??!!?

newKoala 2004-06-08 04:15:21
一个ACCESS数据库
一次性写入30000多条的数据
数据库的大小达到8M多
但是删除这30000多条数据后
数据库文件的大小仍然是8M多

用ACCESS打开后 里面什么都没有
怎么回事啊?
...全文
128 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoid 2004-06-14
  • 打赏
  • 举报
回复
As you change data in a database, the database file can become fragmented and use more disk space than necessary. Periodically, you should compact your database to defragment the database file.
newKoala 2004-06-14
  • 打赏
  • 举报
回复
没有压缩之前
那么多的空间 里面放的是什么东西啊?
zhang1000 2004-06-09
  • 打赏
  • 举报
回复
#import "C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll" rename_namespace("ADOCG") rename("EOF","EndOfFile")
using namespace ADOCG;
#import "C:\Program Files\Common Files\SYSTEM\ADO\msjro.DLL" no_namespace

TCHAR szDestSQL[100];
TCHAR szSQL[100];

::CoInitialize(NULL);
sprintf(szSQL, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Info.mdb");
IJetEnginePtr jet(__uuidof(JetEngine));
sprintf(szDestSQL, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=InfoTemp.mdb;");
strcat(szDestSQL, "Jet OLEDB:Engine Type=5");
jet->CompactDatabase(szSQL, szDestSQL);
DeleteFile("Info.mdb");
rename("InfoTemp.mdb", "Info.mdb");
::CoUninitialize();
zoid 2004-06-09
  • 打赏
  • 举报
回复
CDaoWorkspace::CompactDatabase
static void PASCAL CompactDatabase( LPCTSTR lpszSrcName, LPCTSTR lpszDestName, LPCTSTR lpszLocale = dbLangGeneral, int nOptions = 0 );
throw( CDaoException, CMemoryException );

这个或许对你有用.
njtlxm 2004-06-09
  • 打赏
  • 举报
回复
在MSDN中有一个用OLE DB接口来压缩ACCESS数据库得例子,找找吧,不是很难
jiey 2004-06-09
  • 打赏
  • 举报
回复
采用DAO操作ACCESS时有一个压缩函数API得。具体记不大清楚了。就像整理磁盘碎片那种功能
newKoala 2004-06-09
  • 打赏
  • 举报
回复

有相应的API函数吗?希望通过编写程序来解决这个问题

总不能让使用者自己来压缩数据库啊
悲酥清风 2004-06-08
  • 打赏
  • 举报
回复
居然有这样的情况,学习……
怎样压缩呢?
白驼山宋兵甲 2004-06-08
  • 打赏
  • 举报
回复
我也碰到这个问题,有专门的API 吗?
yening0914 2004-06-08
  • 打赏
  • 举报
回复
它不会自动清理,需要用工具进行压缩、修复
newKoala 2004-06-08
  • 打赏
  • 举报
回复
里面啥都没有
怎么会占那么多的空间
里面都是啥呢?
DebugXP 2004-06-08
  • 打赏
  • 举报
回复
压缩/修复一下就行了
AIX常用命令://查看机器序列号,IBM的基本信息都可以通过该命令查询得到 #prtconf #oslevel -r == uname -a //操作系统版本 #oslevel //查看操作系统版本ex :5.1.0.0 #oslevel -r //ex:5100-04 == oslevel -q //双机软件版本号 # lslpp -l|grep cluster //显示graphic display # lsdisp //查看CPU的个数 # bindprocessor -q //查看CPU的主频,操作系统版本最低是AIX 5.1,包含在软件包bos.pmapi.pmsvcs pmcycles This machine runs at 1500MHz //显示cpu的主频是1.5G #如何查找根文件系统(/)中的大文件 find -xdev -size +xxxx -ls #查找根卷组下大于2M的文件, 并根据文件大小排序, 大文件在前. find / -xdev -size +1024 -ls |sort -r +6 8277 624 -r-xr-xr-x 1 root system 635390 Jul 31 2003 /sbin/helpers/jfs2/fsck 28 596 -rw-r--r-- 1 root system 609388 Apr 12 17:25 /smit.log 30 1660 -rw-r--r-- 1 root system 3338083 Apr 5 14:08 /core #查看备份磁带中备份文件的大小 tcopy /dev/rmt0 tcopy: Tape File: 1; Records: 1 to 251; Size: 2097152. ---磁带机文件头大小 tcopy: Tape File: 1; Record: 252; Size 344064. ---磁带机文件头大小 tcopy: File: 1; End of File after: 252 Records, 526729216 Bytes. ---文件大小 tcopy: The end of the tape is reached. tcopy: The total tape length is 526729216 bytes. #如何取定文件与文件集的对应关系,有时想使用某个安装文件, 但没有安装包含该文件的文件集,找到文件集来安装所需文件 首先确认系统中已经安装了“bos.content_list”文件集(fileset), 如果没有安装, 请使用smitty installp进行安装. 运行which_fileset命令, 根据文件查找对应的文件集. 例如: #which_fileset iostat /usr/bin/iostat bos.acct 5.1.0.0 运行lslpp -f 命令, 查看指定文件集中包含的文件: #lslpp -f bos.acct //出于AIX系统安全考虑, 需要使某些用户只能在控制台登录使用,而不允许远程登陆使用. 更改/etc/security/user 文件中需要限制的用户的rlogin属性(rlogin = false) 当再次尝试远程登录时, 系统报错:Remote logins are not allowed for this account, 表示修改成功 //如何自动logout用户 有的用户登录后就长时间空闲,有可能导致安全上的问题,通过打开 /etc/profile 中 TMOUT 注释,将在设置的时间到达后自动logout用户 例如: export TMOUT=120 那么, 用户两分钟没有击键,将自动logout //AIX系统中如何限制用户所使用文件的大小(AIX小型机有大文件限制) >#smit chuser 在菜单上选择要控制的用户, 并修改下面两项: Soft FILE size [aaa] Hard FILE size [aaa] 则修改后用户的文件大小最大为aaa×512 bytes. >如何验证? 可以用该用户登录系统, 使用命令“ulimit -f”和“ulimit -Hf”可分别显示其fsize,fsize_hard的大

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧