为什么用delphi操作access数据库,在win98下运行,delete,insert几次后,数据库大小一下子从几10k升
几百M呢?
有没有人遇到过类似的问题,是怎么回事呀!
几百M呢?
有没有人遇到过类似的问题,是怎么回事呀!
解决方案 »
- 调用DLL出现严重问题,请教各位~~在线等待答案,,立即结帖!!
- 用了Oratable 代码如下运行出现错误提示:Oratable:Can't modify a read-only dataset.求解。
- 送分!求一下两个时间相减的方法?
- 如何实现两个数值的互换?
- 如何实现在系统中通过条形码扫描自动带出货品代号?
- 关于数据库的导入问题?在线等待!
- 如何实现Delphi程序界面的另类风格化
- 谁能做这个软件?????
- 用canvas做打印票据时,怎样才能实现先预览后打印?
- 救救我!!!,非常重要的问题,UP有分,分不够可以再加!
- quickreport的显示固定行的问题老FANS肯定知道来帮忙一下吧
- 关于EnlcoGr.dcu问题
http://community.csdn.net/Expert/topic/4050/4050563.xml?temp=.5395777
不过你delete,insert几次后就从 几十K -> 几百M ,是有点夸张,是不是有什么特殊字段;
还有在WIN98下这样,在WIN2000下呢
膨胀是不是Access的bug呢
uses ComObj;//压缩与修复数据库,覆盖源文件 uses ComObj;
function CompressDataBase(AFileName,APassWord: string): Boolean;
const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +
'Jet OLEDB:Database Password=%s;';
var
SPath,SFile: array [0..254] of Char;
STempFileName: string;
JE: OleVariant;
begin
GetTempPath(40,SPath); //取得Windows的Temp路径
GetTempFileName(SPath,'~CP',0,SFile); //取得Temp文件名,Windows将自动建立0字节文件
STempFileName := SFile; //PChar->String
DeleteFile(STempFileName); //删除Windows建立的0字节文件
try
JE := CreateOleObject('JRO.JetEngine'); //建立OLE对象,函数结束OLE对象超过作用域自动释放
OleCheck(JE.CompactDatabase(Format(SConnectionString,[AFileName,APassWord]),
Format(SConnectionString,[STempFileName,APassWord])));
//压缩数据库
//复制并覆盖源数据库文件,如果复制失败则函数返回假,
//压缩成功但没有达到函数的功能
Result := CopyFile(PChar(STempFileName),PChar(AFileName),False);
DeleteFile(STempFileName); //删除临时文件
except
Result := False; //压缩失败
end;
end;
http://access911.net/index.asp?board=11&pm=e&k=20%25%7D%5C%3E%D1%B9%CB%F5+%D0%DE%B8%B4%25%7D%5C%3E1%25%7D%5C%3E%25%7D%5C%3E