我试图修复access 数据库
代码如下
var
strSource ,strDest : WideString;
begin
// jetengine1 为tjetengine类的对象
strSource := 'D:\Documents and Settings\Administrator\桌面\ljldb.mdb';
strDest := 'D:\Documents and Settings\Administrator\桌面\ljldb2.mdb';
JetEngine1.CompactDatabase(strSource,strDest);但是运行的时候,出现"初始化字符串不符合ole db规定"的错误?实在不明白.各位大哥大姐,帮个忙!!!!!!!!!!!!!
代码如下
var
strSource ,strDest : WideString;
begin
// jetengine1 为tjetengine类的对象
strSource := 'D:\Documents and Settings\Administrator\桌面\ljldb.mdb';
strDest := 'D:\Documents and Settings\Administrator\桌面\ljldb2.mdb';
JetEngine1.CompactDatabase(strSource,strDest);但是运行的时候,出现"初始化字符串不符合ole db规定"的错误?实在不明白.各位大哥大姐,帮个忙!!!!!!!!!!!!!
//压缩与修复数据库,覆盖源文件
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;
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';
// Procedure: GetTempPathFileName
// Author : ysai
// Date : 2003-01-27
// Arguments: (None)
// Result : string
//=============================================================================
function GetTempPathFileName():string;
//取得临时文件名
var
SPath,SFile:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(result);
end;