如何检测是否安装了AccessDataBaseEngine

happlygong 2015-02-02 09:15:58
做的程序使用了Access 2010版的数据库,扩展名为.accdb。数据访问使用"Microsoft.ACE.OLEDB.12.0;Jet OLEDB:Database Password = 'Pass'"。在没有安装Access的电脑上运行会有“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”和“未找到提供程序。该程序可能未正确安装。”等提示。
开始的做法是检查注册表中
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Microsoft Access Driver (*.mdb, *.accdb)]
"UsageCount"=dword:00000003
"Driver"="C:\\PROGRA~1\\COMMON~1\\MICROS~1\\OFFICE14\\ACEODBC.DLL"
"Setup"="C:\\PROGRA~1\\COMMON~1\\MICROS~1\\OFFICE14\\ACEODBC.DLL"
"APILevel"="1"
"ConnectFunctions"="YYN"
"DriverODBCVer"="02.50"
"FileUsage"="2"
"FileExtns"="*.mdb,*.accdb"
"SQLLevel"="0"
是否有这些值,如果有这些值判断为已经安装了AccessDatabaseEngine,如果没有则安装AccessDatabaseEngine。
但是现在在一台卸载了Office的电脑上安装运行时,失灵了。检查注册表发现那些值都在。
怎么才能正确判断是否安装了AccessDatabaseEngine呢?
...全文
4224 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tzlaoliu 2015-02-03
  • 打赏
  • 举报
回复
一般安装程序都支持内嵌程序吧 比如inno一样可以写Delphi代码 在里面直接调用,捕捉错误 我个人觉得不用费劲检测,调用出错就视为没装
happlygong 2015-02-03
  • 打赏
  • 举报
回复
是想在程序安装的时候就检测出来,安装程序来处理。
tzlaoliu 2015-02-03
  • 打赏
  • 举报
回复
干嘛要检测呢 管它有没有装这个,直接用就是 报错就try捕捉,报错了不就证明没装么 前提是你处理好你的链接串在任何情况下都是好的 那么报错就是没装咯

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧