我的意图是想由程序动态建立一个数据库mdb后。进行一次压缩之后,希望它能自动对之后加入的数据进行压缩,我的流程如下:1\新建一个crm.mdb;
2\压缩这个crm.mdb;(建库成功后只做一次压缩)
3\动态加入新的数据(自动对这些数据进行压缩,不想再次调用压缩函数进行压缩);但发现加入新的数据并没有进行压缩。我使用以后这个方式对数据库进行压缩,如下
procedure TCRM.CompactLocalDb;
var
STempFileName: String;
vJE: OleVariant;
begin
STempFileName := 'tempcrm.mdb';
try
ADOConnect.Connected := False;
vJE := CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(Format(SConnectionString,[FLocalCrmDB,'']),Format(SConnectionString,[STempFileName,'']));
CopyFile(PChar(STempFileName),PChar(FLocalCrmDB),False);
DeleteFile(STempFileName);
except
CmdException.WriteLogInfo('TCRM.CompactLocalDb','CompactLocalDb Error');
end;
end;
期望你的指点。分不是很多,先谢过了。
2\压缩这个crm.mdb;(建库成功后只做一次压缩)
3\动态加入新的数据(自动对这些数据进行压缩,不想再次调用压缩函数进行压缩);但发现加入新的数据并没有进行压缩。我使用以后这个方式对数据库进行压缩,如下
procedure TCRM.CompactLocalDb;
var
STempFileName: String;
vJE: OleVariant;
begin
STempFileName := 'tempcrm.mdb';
try
ADOConnect.Connected := False;
vJE := CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(Format(SConnectionString,[FLocalCrmDB,'']),Format(SConnectionString,[STempFileName,'']));
CopyFile(PChar(STempFileName),PChar(FLocalCrmDB),False);
DeleteFile(STempFileName);
except
CmdException.WriteLogInfo('TCRM.CompactLocalDb','CompactLocalDb Error');
end;
end;
期望你的指点。分不是很多,先谢过了。
解决方案 »
- 关于DELPHI5多线程同步的问题
- 如何修改动态生成控件的属性
- 求解决方案,大家帮忙,多给方案啊,思路都可以!
- 谁作过医院管理系统,解决一个致命问题
- 商场买进一头生猪,然后刹之,再分开瘦肉,猪脚等来买...现在的问题是,这软件中是如
- 在delphi中怎样利用TTbale控件来实现数据库的修改,就是update了。急!!!!
- 请教一个edit的问题
- 有人在delphi中,用过web service技术,进行三层数据库开发吗?
- cxDBGrid控件如何显示表格的字段名称
- test
- 硬件在进步 软件在退步
- 怎么把一个文件拖放到OleContainer1中,然后在OleContainer1中显示出他的内容?
但是我没有做任何的数据删除。只是增加数据。在win2k下与win98下同时增加相同的数据。但是win2k下只所增加的数据量只有win98的1/3的大小。这是为何呢。不信,可以测试一下,我有测试过。所以我才觉得奇怪。请大家继续讨论。