为什么加了一些字段之后,Access文件变得如此硕大??(20分)

  • 主题发起人 主题发起人 taozhiyu
  • 开始时间 开始时间
T

taozhiyu

Unregistered / Unconfirmed
GUEST, unregistred user!
我建了一个Access文件,设计了大约20多个字段,没有写入任何数据。

现在文件的大小已经到 5 MB 了! 这是为什么阿!! 如何减肥???
 
压缩(用ACCESS自身的)
 
168K 了。
 
Access增加数据的时候,增大文件大小,删除数据的时候,不释放空间。
只有使用压缩的功能的时候才释放。
自己也可以写代码压缩。
 
好兄弟,能不能给一段用ADO压缩ACCESS的代码啊?
 
全搬下来吧,我的一段程序的代码,重要是使用CreateOleObject('JRO.JetEngine')
function TFrm_Export_Show.Compact_DB(l_Dest_DBName: String; l_Password: String): Boolean;
var
Dest_DB_Connection: OleVariant;
l_Source_Con_Str, l_Dest_Con_Str: String;
begin

DM_Pub.Acon_Export.Close;

if FileExists(l_Dest_DBName) = True then
if DeleteFile(pChar(l_Dest_DBName)) = False then
begin
Application.MessageBox(pchar('覆盖文件' + l_Dest_DBName + '出错!可能文件正在被使用!'), '提示', 48 + mb_ok);
Result := False;
Exit;
end;


try
Dest_DB_Connection := CreateOleObject('JRO.JetEngine');
except
if Application.MessageBox('创建JRO.JetEngine失败!可能是当前所安装的ADO版本不同!压缩数据库失败!是否将没有压缩的文件导出?', '询问', 32 + mb_ok) = MrYes then
begin
Result := Export_DB_File(l_Dest_DBName);
Exit;
end
else
begin
Result := False;
Exit;
end;
end;

l_Source_Con_Str :=
'Data Source=' + VG_APP_PATH + 'JWC_Export.MDB' + ';' +
'Jet OLEDB:Database Password="' + VG_DB_PASS + '"';

l_Dest_Con_Str :=
'Data Source=' + l_Dest_DBName + ';' +
'Jet OLEDB:Database Password="' + l_Password + '"';

try
OleCheck(Dest_DB_Connection.CompactDatabase(l_Source_Con_Str, l_Dest_Con_Str));
Result := True;
except
if Application.MessageBox('压缩导出文件失败!是否将未压缩的文件导出?', '询问', 32 + mb_YesNo) = mrYes then
Result := Export_DB_File(l_Dest_DBName)
else
Result := False;
end;
end;
 
主要是思想,它将原文件压缩到另一个文件中去,对另一个文件,可以直接设置密码等。
 
Dest_DB_Connection := CreateOleObject('JRO.JetEngine');
OleCheck(Dest_DB_Connection.CompactDatabase(原连接串,目的连接串));
OldCheck是判断是否出错,Delphi提供的。
 
抛砖引玉.... that is nice!!
 
我也用同样的方法,看看我的电子书库吧!最安全,最方便的电子书库
HTPP://CODEHUNTER.1YES.NET
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部