用程序实现压缩access(*.mdb)数据库的方法-钱玉炜
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 综合其它


用程序实现压缩access(*.mdb)数据库的方法

发表时间:2008/7/9 8:44:34 评论(2) 浏览(7383)  评论 | 加入收藏 | 复制
   
摘 要:用程序实现压缩access(*.mdb)数据库的方法
正 文:
下面的函数用来压缩access数据库 需要增加ComObj单元
function CompactDatabase(AFileName,APassWord:string):boolean;
//压缩与修复数据库,覆盖源文件
const
  SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
      +'Jet OLEDB:Database Password=%s;';
var
  SPath,SFile:Array [0..254] Of Char;
  STempFileName:String;
  JE:OleVariant;
begin
  GetTempPath(40,SPath);//取得Windows的Temp路径
  GetTempFileName(SPath,'~CP',0,SFile);//取得Temp文件名,Windows将自动建立0字节文件
  STempFileName:=SFile;//PChar->String
  DeleteFile(STempFileName);//删除Windows建立的0字节文件
  try
    JE:=CreateOleObject('JRO.JetEngine');//建立OLE对象,函数结束OLE对象超过作用域自动释放
    OleCheck(JE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
        format(SConnectionString,[STempFileName,APassWord])));//压缩数据库
    //复制并覆盖源数据库文件,如果复制失败则函数返回假,压缩成功但没有达到函数的功能
    result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
    DeleteFile(STempFileName);//删除临时文件
  except
    result:=false;//压缩失败
  end;
end;

Access软件网交流QQ群(群号:198465573)
 
 相关文章
压缩修复外部mdb(带密码)  【叶海峰  2012/7/3】
Asp.net在线备份、压缩和修复Access数据库  【lqr801225  2012/8/15】
利用命令按钮退出时压缩自身  【沈军  2012/8/25】
当前数据库压缩修复、打开选定的数据库/后台数据库管理  【网行者  2012/12/2】
sql多文件压缩  【收藏整理  2013/4/6】
常见问答
技术分类
相关资源
文章搜索
关于作者

钱玉炜

文章分类

文章存档

友情链接