以下是借鉴网上诸多网友的代码经过整理和修改而来。
下面是示例代码,注意压缩数据库的代码同时可以用于修改密码。
unit DataProc;
interface
uses Windows, SysUtils, ADODB, Variants, ComObj;
const
ConStr = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+ 'Jet OLEDB:Database Password=%s';
function BuildConnectionString: String;
function CompactDatabase(DB: String; OldPass: String='';
NewPass: String=''): Boolean;
function CreateAccess(pAccess: String; Pass: String=''): Boolean;
function RepairDatabase(pDBFile: String; Pass: String=''): Boolean;
implementation
function GetTmpFile: String;
var
LPath: String;
LFile: array[0..MAX_PATH] of Char;
begin
LPath := ExtractFilePath(ParamStr(0));
if (GetTempFileName(PChar(LPath), '~data', 0, LFile) <> 0) then
begin
DeleteFile(LFile);
Result := LFile;
end;
end;
function BuildConnectionString: String;
begin
Result := PromptDataSource(0, '');
end;
function CompactDatabase(DB, OldPass, NewPass: String): Boolean;
var
dao: OleVariant;
TmpDB: String;
begin
TmpDB := GetTmpFile;
try
dao := CreateOleObject('JRO.JetEngine');
dao.CompactDatabase(Format(ConStr, [DB, OldPass]),
Format(ConStr, [DB, NewPass]));
Result := CopyFile(PChar(TmpDB), PChar(DB), False);
DeleteFile(TmpDB);
except
Result := False;
end;
end;
function CreateAccess(pAccess: String; Pass: String=''): Boolean;
var
cat: OleVariant;
begin
try
cat := CreateOleObject('ADOX.Catalog');
cat.Create(Format(ConStr, [pAccess, Pass]));
Result := True;
except
Result := False;
end;
end;
function RepairDatabase(pDBFile: String; Pass: String=''): Boolean;
var
dao: OleVariant;
begin
try
dao := CreateOleObject('JRO.JetEngine');
dao.RepairDatabase(Format(ConStr, [pDBFile, Pass]));
Result := True;
except
Result := False;
end;
end;
end.
下面是示例代码,注意压缩数据库的代码同时可以用于修改密码。
unit DataProc;
interface
uses Windows, SysUtils, ADODB, Variants, ComObj;
const
ConStr = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+ 'Jet OLEDB:Database Password=%s';
function BuildConnectionString: String;
function CompactDatabase(DB: String; OldPass: String='';
NewPass: String=''): Boolean;
function CreateAccess(pAccess: String; Pass: String=''): Boolean;
function RepairDatabase(pDBFile: String; Pass: String=''): Boolean;
implementation
function GetTmpFile: String;
var
LPath: String;
LFile: array[0..MAX_PATH] of Char;
begin
LPath := ExtractFilePath(ParamStr(0));
if (GetTempFileName(PChar(LPath), '~data', 0, LFile) <> 0) then
begin
DeleteFile(LFile);
Result := LFile;
end;
end;
function BuildConnectionString: String;
begin
Result := PromptDataSource(0, '');
end;
function CompactDatabase(DB, OldPass, NewPass: String): Boolean;
var
dao: OleVariant;
TmpDB: String;
begin
TmpDB := GetTmpFile;
try
dao := CreateOleObject('JRO.JetEngine');
dao.CompactDatabase(Format(ConStr, [DB, OldPass]),
Format(ConStr, [DB, NewPass]));
Result := CopyFile(PChar(TmpDB), PChar(DB), False);
DeleteFile(TmpDB);
except
Result := False;
end;
end;
function CreateAccess(pAccess: String; Pass: String=''): Boolean;
var
cat: OleVariant;
begin
try
cat := CreateOleObject('ADOX.Catalog');
cat.Create(Format(ConStr, [pAccess, Pass]));
Result := True;
except
Result := False;
end;
end;
function RepairDatabase(pDBFile: String; Pass: String=''): Boolean;
var
dao: OleVariant;
begin
try
dao := CreateOleObject('JRO.JetEngine');
dao.RepairDatabase(Format(ConStr, [pDBFile, Pass]));
Result := True;
except
Result := False;
end;
end;
end.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/634491/viewspace-201639/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/634491/viewspace-201639/