1.我的access打开是有密码的,如何动态的打开它?假设密码是cxjADOConnection1.ConnectionString:=‘Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\My Documents\zzysystem.mdb;Persist Security Info=False’2.用什么指令“压缩和修复数据库”
调试欢乐多
第二个问题:代码如下:
uses dao97,dao2000;procedure CompactMdbDatabase(srcDbname,dstDbname,oldpwd,newpwd:string;bAccess97:boolean=true);
var idbEngine:_dbEngine;
begin
if oldpwd <>'' then oldpwd := ';pwd='+oldpwd;
if newpwd <>'' then newpwd := ';pwd='+newpwd;
if bAccess97 then
begin
idbengine := CreateComObject(dao97.CLASS_DBEngine) as _DBEngine;
idbEngine.CompactDatabase(srcDbname,dstDbname,newpwd,dbVersion30,oldpwd);
end else
begin
idbengine := CreateComObject(dao2000.CLASS_DBEngine) as _DBEngine;
idbEngine.CompactDatabase(srcDbname,dstDbname,newpwd,dbVersion40,oldpwd);
end;
end;
var
vJE: OleVariant;
string1, string2, TempFileName, FileName: string;
TempFileName := ExtractFilePath(Application.ExeName) + 'sjgx02.mdb';
FileName := ExtractFilePath(Application.ExeName) + 'sjgx.mdb';
string1 := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + filename + ';Jet OLEDB:Database Password='''';';
string2 := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + TempFileName + ';Jet OLEDB:Database Password='''';';
vJE := CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(string1, string2);
CopyFile(PChar(TempFileName), pchar(filename), false);
DeleteFile(TempFileName);