做的程序使用了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呢?
开始的做法是检查注册表中[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呢?
解决方案 »
- 如何较验一个xml文件对于一xsd文件是否有效?
- 要做一套车辆管理系统,有什么好方法处理出车和回车信息的录入
- 如何判断局域网内某台机器上的某个文件是否存在?
- 看看这个过程哪里不对,为什么总是提示窗体上的某个组件有错误?!
- 如何使用不同的数据库系统?
- 立刻给分!!!!再线等待!!关于StringGrid的小问题,请教各位。
- 入门:如何让listbox选中想要的item项.
- 编程思路问题请教
- delphi对图片的操作
- 请问在delphi中如何实现与return类似的功能?
- 请问,DELPHI 如何实现输入shell后发送给linux,linux执行后把执行结果再显示出来呢?谢谢!
- 关于delphi指针的问题请教
管它有没有装这个,直接用就是
报错就try捕捉,报错了不就证明没装么
前提是你处理好你的链接串在任何情况下都是好的
那么报错就是没装咯
比如inno一样可以写Delphi代码
在里面直接调用,捕捉错误
我个人觉得不用费劲检测,调用出错就视为没装