zoukankan      html  css  js  c++  java
  • paip.编程压缩Access数据库

    paip.编程压缩Access数据库


    作者Attilax ,  EMAIL:1466519819@qq.com 
    来源:attilax的专栏
    地址:http://blog.csdn.net/attilax


    /命令行法
    "d:\Program Files\Microsoft Office\OFFICE12\MSACCESS.EXE" /compact  "D:\locoySpiderv8\Data\LocoySpider\48\SpiderResult.mdb" 
    会出来个BLASH闪一挂.




    com方法
    况且有时候需要自动来完成这个操作,所以我们需要把它用代码来完成,需要调用COM对象的方法,压缩后的数据库被保存为另外一个文件,再把原文件删除(其实Access自己也是这么做的),代码如下:


    #include "objbase.h" //牵涉到COM对象,必须包含此头文件


    AnsiString srcmdb="c://test.mdb"; //原文件名(压缩之前)
    AnsiString destmdb="c://test2.mdb"; //目标文件名(压缩之后)
    CoInitialize(NULL); //初始化COM对象
    AnsiString src = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+srcmdb; //连接字串
    AnsiString dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+destmdb;
    Variant AdoObj = Variant::CreateObject("JRO.JetEngine");
    AdoObj.OleProcedure("CompactDatabase",src.c_str(),dest.c_str());
    AdoObj.Clear();
    CoUninitialize();
    DeleteFile(srcmdb) ; //删除原文件,如果不放心可以不删除留个备份,但需要改名
    RenameFile(destmdb,srcmdb); //将压缩后的文件改成原文件名




    参考:
    Access启动命令行选项_开发 数据库_IT专家网.htm
    如何压缩Access数据库 - _ Compile Failed _ - 博客频道 - CSDN_NET
    How to use command-line switches in Microsoft Access.htm
  • 相关阅读:
    tomcat的systemctl启动脚本
    vmware中虚拟化的问题
    zabbix-3.4.14源码安装
    tomcat启动后8005端口未被占用
    Centos7初始化脚本
    CentOS7.3上如何安装Apache/2.4.34
    js完整教程一 : 基本概念和数组操作
    浅入浅出Lambda表达式
    这些基础却重要的面向对象概念,你还记得多少
    MVC5+EF6 入门完整教程11--细说MVC中仓储模式的应用
  • 原文地址:https://www.cnblogs.com/attilax/p/15199464.html
Copyright © 2011-2022 走看看