function TForm1.GetTempPathFileName():string;//取得临时文件名
var
SPath,SFile:array [0..254] of char;
begin
GetTempPath(254,sPath);
GetTempFileName(sPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(PChar(result));
end;
function TForm1.create_mdb(const fnames:string):boolean; //创建access数据库,如果存在这创建失败
var
yuanname:string;
CreateAccess:OleVariant;
begin
yuanname:=GetTempPathFileName;
try
CreateAccess:=CreateOleObject('ADOX.Catalog');
CreateAccess.Create(format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s',[yuanname]));
result:=copyfile(pchar(yuanname),Pchar(Fnames),true);
DeleteFile(yuanname);
except
result:=false;
end;
end;
function TForm1.CompactDatabase(AFileName:string):boolean; //压缩与修复数据库,覆盖源文件
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s',[AFileName]),
format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s',[STempFileName]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
procedure TForm1.conning_mdb(sql:string); //数据库连接
var
strcon,str_sql:string;
begin
strcon:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+fname;
ADO.ConnectionString:=strcon;
if not ADO.connected then
begin
ADO.connected:=true;
end;
adoquery1.connection:=ADO;
adoquery1.close;
adoquery1.SQL.Clear;
str_sql := sql;
adoquery1.sql.add(str_sql);
adoquery1.ExecSQL;
ado.Close;
end;