压缩access数据库
遇到一个问题,使用的是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数据库相关推荐
- C# 压缩Access数据库(转)
两种方法: 一: ------------------------------------ /// <summary> /// connectionString 数据库连接 ...
- vb6压缩Access数据库使用JRO.JetEngine
引用msjro.dll控件 ' 压缩数据库 Public Function compactDatabase(ByVal DataBase As String) On Error GoTo err1Di ...
- C#压缩和修复Access数据库
介绍 下面这段C# 代码可以用来压缩和修复Access数据库,不管它是一个简单的".mdb"ACCESS数据库还是一个".mdw"网络共享数据库,这个过 ...
- 巨人Access数据库压缩器官方版
名称:巨人Access数据库压缩器官方版 版本:1.0 软件大小:767KB 软件语言:简体中文 软件授权:免费版 应用平台:Win7/Win2003/Vista/ Win2000/WinXP 软件介 ...
- 【原创】ASP.NET C# 对SQL/ACCESS 数据库的备份和还原函数
//注意:本文为博主原创,转载请注明出处,谢谢合作! //使用前须先引用SQLDMO.dll ADOX.dll JRO.dll 等组件,无须独立安装 //如:C:\Program Files\Comm ...
- Asp.net在线备份、压缩和修复Access数据库
1.问题的提出 在设计中小型Web应用程序时,可以选择Microsoft Accesss为数据库.在数据库的使用过程中经常性进行增加和删除操作.事实上,Microsoft Access并不能有效地释放 ...
- ACCESS数据库的压缩,备份,还原,下载,删除的实现
以文本方式查看主题 - 企胜MIS开发论坛|ASP.NET|UML| CSS|Access|My SQL|网络营销|JAVA|J2EE|Ajax (http://www.fleake.com/in ...
- 如何压缩带有mdw安全文件机制和密码的的access数据库
a = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/数据库.mdb;Password=管理员密码;User ID=管理员帐号;Jet O ...
- 长期使用中型Access数据库的一点经验
Access数据库在用的过程中, 经常不断的进行删除和增加记录的操作,会出现以下问题: 1. 可能会使Update语句更新失败, 明明一条记录存在, 也可以select到,但在用Update时出现找不 ...
- DELPHI中操作ACCESS数据库
DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //在之前u ...
最新文章
- C# delegate and event
- MyBatis -- 结果集映射
- Python练习 | Python3中的格式化输入输出之print函数
- 显著改善分割预测,ETH开源基于情景图储存网络的视频目标分割|ECCV2020
- 系兄弟就来砍我 有向图单源最短路
- 回溯法求解N皇后问题(Java实现)
- S5PV210体系结构与接口12:I2C编程
- 如何在Windows上安装多个MySQL
- Levis(李维斯)网上专卖店 - 不讲信用,请大家一定注意!
- html5 简单实例源代码
- CacheCloud详解(一)----------CacheCloud搭建(Redis云平台)
- Gmail使用POP3设置的奥秘
- 第一次软工作业(数独)
- 如何进阶为数据科学家
- CUDA/cudnn/CUDA Toolkit/NVCC区别简介
- Zion无代码赋能企业中台构建
- QT5.11-spdlog使用教程
- 使用Freeman链码提取影像边界
- 小程序瀑布流_小程序界面设计 | 太古可口可乐会员平台
- 如何远程控制另外一台电脑