遇到一个问题,使用的是accesss数据库,在加载数据库中的信息的时候,速度特别慢,有时候一次查询最终会卡15秒左右,然后才能得到结果,跟踪发现卡的地方在SQLExecDirect中,已经是odbc api了。打开数据库看也没发现啥问题,后来点了access上边的 “压缩和修复数据库”工具,数据库从原来的 8M 瞬间变成了 800k ,使用压缩后的数据库时速度就特别快了,不知道是不是access数据库的啥毛病,记录下压缩用到的代码:
关键代码:

    CDaoWorkspace dao;//将 Properties.mdb 压缩为 Properties_comp.mdbdao.CompactDatabase(g_CurrentPath + "Properties.mdb",g_CurrentPath + "Properties_comp.mdb");

压缩之后替换原来的文件,完整代码:

VOID CLoginPasswordDlg::CompactDatabase()
{try{CFileFind finder;if(finder.FindFile(g_CurrentPath + "Properties_comp.mdb")){finder.Close();DeleteFile(g_CurrentPath + "Properties_comp.mdb");}if(finder.FindFile(g_CurrentPath + "Properties.mdb")){finder.Close();CFile file;if(file.Open(g_CurrentPath + "Properties.mdb",CFile::modeReadWrite)){file.Close();CDaoWorkspace dao;dao.CompactDatabase(g_CurrentPath + "Properties.mdb",g_CurrentPath + "Properties_comp.mdb");}}}catch(...){OutputDebugString("CompactDatabase exception.");}try{CFileFind finder;if(finder.FindFile(g_CurrentPath + "Properties.mdb") && finder.FindFile(g_CurrentPath + "Properties_comp.mdb")){finder.Close();if(!CopyFileA(g_CurrentPath + "Properties_comp.mdb",g_CurrentPath + "Properties.mdb",FALSE))OutputDebugString("CopyFile failed.");DeleteFile(g_CurrentPath + "Properties_comp.mdb");}}catch(...){}
}

需要包含头文件:

#include "afxdao.h"

压缩access数据库相关推荐

  1. C# 压缩Access数据库(转)

    两种方法: 一: ------------------------------------ /// <summary>         /// connectionString 数据库连接 ...

  2. vb6压缩Access数据库使用JRO.JetEngine

    引用msjro.dll控件 ' 压缩数据库 Public Function compactDatabase(ByVal DataBase As String) On Error GoTo err1Di ...

  3. C#压缩和修复Access数据库

    介绍     下面这段C# 代码可以用来压缩和修复Access数据库,不管它是一个简单的".mdb"ACCESS数据库还是一个".mdw"网络共享数据库,这个过 ...

  4. 巨人Access数据库压缩器官方版

    名称:巨人Access数据库压缩器官方版 版本:1.0 软件大小:767KB 软件语言:简体中文 软件授权:免费版 应用平台:Win7/Win2003/Vista/ Win2000/WinXP 软件介 ...

  5. 【原创】ASP.NET C# 对SQL/ACCESS 数据库的备份和还原函数

    //注意:本文为博主原创,转载请注明出处,谢谢合作! //使用前须先引用SQLDMO.dll ADOX.dll JRO.dll 等组件,无须独立安装 //如:C:\Program Files\Comm ...

  6. Asp.net在线备份、压缩和修复Access数据库

    1.问题的提出 在设计中小型Web应用程序时,可以选择Microsoft Accesss为数据库.在数据库的使用过程中经常性进行增加和删除操作.事实上,Microsoft Access并不能有效地释放 ...

  7. ACCESS数据库的压缩,备份,还原,下载,删除的实现

    以文本方式查看主题 -  企胜MIS开发论坛|ASP.NET|UML| CSS|Access|My SQL|网络营销|JAVA|J2EE|Ajax  (http://www.fleake.com/in ...

  8. 如何压缩带有mdw安全文件机制和密码的的access数据库

    a = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/数据库.mdb;Password=管理员密码;User ID=管理员帐号;Jet O ...

  9. 长期使用中型Access数据库的一点经验

    Access数据库在用的过程中, 经常不断的进行删除和增加记录的操作,会出现以下问题: 1. 可能会使Update语句更新失败, 明明一条记录存在, 也可以select到,但在用Update时出现找不 ...

  10. DELPHI中操作ACCESS数据库

    DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //在之前u ...

最新文章

  1. C# delegate and event
  2. MyBatis -- 结果集映射
  3. Python练习 | Python3中的格式化输入输出之print函数
  4. 显著改善分割预测,ETH开源基于情景图储存网络的视频目标分割|ECCV2020
  5. 系兄弟就来砍我 有向图单源最短路
  6. 回溯法求解N皇后问题(Java实现)
  7. S5PV210体系结构与接口12:I2C编程
  8. 如何在Windows上安装多个MySQL
  9. Levis(李维斯)网上专卖店 - 不讲信用,请大家一定注意!
  10. html5 简单实例源代码
  11. CacheCloud详解(一)----------CacheCloud搭建(Redis云平台)
  12. Gmail使用POP3设置的奥秘
  13. 第一次软工作业(数独)
  14. 如何进阶为数据科学家
  15. CUDA/cudnn/CUDA Toolkit/NVCC区别简介
  16. Zion无代码赋能企业中台构建
  17. QT5.11-spdlog使用教程
  18. 使用Freeman链码提取影像边界
  19. 小程序瀑布流_小程序界面设计 | 太古可口可乐会员平台
  20. 如何远程控制另外一台电脑

热门文章

  1. 百度导航5.0之后的坑
  2. 【期末划重点】数据库速成
  3. jeecms oracle v5_如何在linux中搭建JEECMS系统
  4. Android桌面小插件——Widget
  5. PHP语言之表单基础——educoder答案
  6. 【js高级 Day3】深入理解原型的方式继承,借用构造函数继承,组合继承,拷贝继承
  7. 数学四大思想八大方法_你不可不知的数学四大思想方法
  8. HTML中span标签使用详解含多种实例(转)
  9. AE 制作一个简单的动画
  10. 运筹说 第55期丨整数规划先驱——Ralph Gomory