1.Delphi中操作Access数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功.
//在之前uses ComObj,ActiveX //声明连接字符串 Const SConnectionString = ''Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'' +''Jet OLEDB:Database Password=%s;'';
www.iTbulo.com0sJZ0
//============================================================================= // 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(PChar(result)); end; www.iTbulo.com0sJZ0
//============================================================================= // Procedure: CreateAccessFile // Author : ysai // Date : 2003-01-27 // Arguments: FileName:String;PassWord:string='''' // Result : boolean //============================================================================= function CreateAccessFile(FileName:String;PassWord:string=''''):boolean; //建立Access文件,如果文件存在则失败 var STempFileName:string; vCatalog:OleVariant; begin STempFileName:=GetTempPathFileName; try vCatalog:=CreateOleObject(''ADOX.Catalog''); vCatalog.Create(format(SConnectionString,[STempFileName,PassWord])); result:=CopyFile(PChar(STempFileName),PChar(FileName),True); DeleteFile(STempFileName); except result:=false; end; end; www.iTbulo.com0sJZ0
//============================================================================= // Procedure: CompactDatabase // Author : ysai // Date : 2003-01-27 // Arguments: AFileName,APassWord:string // Result : boolean //============================================================================= function CompactDatabase(AFileName,APassWord:string):boolean; //压缩与修复数据库,覆盖源文件 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; www.iTbulo.com0sJZ0
//============================================================================= // Procedure: ChangeDatabasePassword // Author : ysai // Date : 2003-01-27 // Arguments: AFileName,AOldPassWord,ANewPassWord:string // Result : boolean //============================================================================= function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean; //修改ACCESS数据库密码 var STempFileName:string; vJE:OleVariant; begin STempFileName:=GetTempPathFileName; try vJE:=CreateOleObject(''JRO.JetEngine''); vJE.CompactDatabase(format(SConnectionString,[AFile |