Access数据库中有Ole对象用来存放文件,存放大量文件后,数据库文件变得很大,如果此时把数据库里面存放的文件删除,数据库文件大小基本上没有什么变化。
要怎么才能在程序里优化数据库文件的大小呢??
要怎么才能在程序里优化数据库文件的大小呢??
解决方案 »
- Delphi 识别移动硬盘
- 请高手帮忙FTP上载的问题!!!!急呀!!!
- 如何快速从文本文件导入数据到excel
- 请问怎样用鼠标拖动一个 控件 在窗体中移动 ????????????急!!!!!!
- Net Configuration Assistant 配置的问题!
- 如何在动态产生的Edit中响应Edit的KeyPress事件?
- 要学delphi,恳请提供一些入门和中级的好的书籍!
- 请教窗口释放的问题!
- *****请问:如果我想在listbox的item.insert时,insert一个Tedit,即制作一个可编辑的listbox.应该如何实现?*****急!急!急!急!***
- 有关微软认证的报名时间!
- 如何在TPrinter对象中设置打印次数
- Excel复制、粘贴问题
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s;';function GetTempPathFileName:string;
var
SPath, SFile:array [0..254] of char;
begin
GetTempPath(254, SPath);
GetTempFileName(SPath, '~SM', 0, SFile);
result := SFile;
DeleteFile(PChar(result));
end;procedure CompactDB(const DBFile: string);
var
vje: OleVariant;
STempFileName: string;
begin
STempFileName := GetTempPathFileName;
try
vje := CreateOleObject('JRO.JetEngine');
vje.CompactDatabase(
format(SConnectionString,[DBFile, '']),
format(SConnectionString,[STempFileName, '']));
CopyFile(PChar(STempFileName), PChar(DBFile), False);
DeleteFile(STempFileName);
finally
end;
end;
dbe:OleVariant;
begin
dbe:=CreateOleObject('dao.dbengine.36');
dbe.CompactDatabase('D:\aa.mdb','d:\bb.mdb','',0,';pwd= ');
end;
或者
use dao97
var AccessEngine :DBEngine;
AccessEngine:=CoDbEngine.Create;
AccessEngine.CompactDatabase('D:\aa.mdb','d:\bb.mdb','',0,';pwd=');