最好直接用系统的部件,
解决方案 »
- 窗体的显示
- 好久没有上CSDN了,发现现在的论坛秀不错呀,为此散分200!
- 有关Component
- 不好意思,问个简单的问题
- 如何用quickreport实现这样的主从报表:
- 关于ExpressBars Suite v5.1 Full Sources控件使用的小问题[悬赏100分]
- 请问哪里有Delphi5.0下载。英文版的。谢谢,如果有教程的下载网址更好。
- 字符查找的问题
- 请教一下各位高手,用Delphi处理报表方便吗?有分给!!
- 我要实践,免费帮做软件!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 想做一个播放器,要把播放列表做成文本文件放到资源里?请问该怎么更新该文本文件??文本文件是不定长的,随便填加多少曲目都行!
- ADOConnection中OpenSchema方法怎么用?
//压缩与修复数据库,覆盖源文件
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
format(SConnectionString,[STempFileName,APassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
format(SConnectionString,[STempFileName,APassWord]));
是什么意思啊?CompactDatabase函数怎么用?
如果Access不压缩备份,还真不是人用的.操作频繁的时候,一天可以上涨几十M, 压缩一下,就剩下一两M了.//引用ComObj,ActiveX
function CompactDatabase(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;例子:
procedure TFAutoStat.ActCompactDBExecute(Sender: TObject);
var
sFileName: String;
begin
sFileName:=ExtractFilePath(Application.ExeName)+'..\DataBase\AutoStat.mdb';
sBarText('正在压缩数据库,请稍候......');
Self.Enabled:=false;
Self.Cursor:=crSqlWait;
try
AdoConnection.Close;
if CompactDatabase(sFileName,'abcd')
then sBarText('压缩数据库完毕')
else ShowMessage('压缩数据库失败!');
ConnectToDB();
finally
Self.Enabled:=true;
Self.Cursor:=crDefault;
end;
end;