我正在开发使用Access数据库(MDB格式)的Delphi 7应用程序。它可以在我的电脑和其他一些PC上正常工作。但是在有些机器上,有时试图访问数据库时会出现错误,比如说“未知数据库格式(mdb)”。另外我注意到一件事情:当您使用Office在Ms Access中打开该数据库时,出于某种原因它以“只读”模式打开。任何人都可以帮忙吗?这个问题的原因是什么?从Delphi 7打开Access数据库的问题
回答
我认为你最可能的问题是使用MDAC,使用注册表来检查每台机器上的版本,看看有没有工作和不工作的不同之处。
请试试,谢谢:) – 2009-10-24 18:32:28
自从我在Delphi上编程已经很长时间了,但是我记得我在安装不同版本的MDAC时遇到了问题。比较电脑的工作和那些不工作的版本。
检查mdac版本的简单方法是打开regedit并检查HKEY_CLASSES_ROOT以获取MDACVer.Version。*标记 – 2009-10-22 13:03:24
,并且因为检测到MDAC版本是如此的痛苦,请在此处http://support.microsoft.com/kb/301202寻求帮助和工具。 – fvu 2009-10-22 13:04:22
如果MDACVer.Version.2.81不存在:[升级] [1] [1]:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=78cac895-efc2-4f8e -a9e0-3a1afbd5922e – 2009-10-22 13:04:51
如果数据库文件(mdb文件)实际设置为只读(例如,如果它已从CD中复制),我以前会得到该错误消息。检查Windows资源管理器中的文件属性,并确保该文件不是只读的。
而且,你尝试过内访问做一个紧凑&修复,如Access数据库经常损坏,此选项往往可以帮助引起的问题的所有方式。
Jet/ACE数据库不会*经常损坏,除非您不恰当地使用Jet/ACE,并且没有以适当的方式使用Jet/ACE。 -1 – 2009-10-23 01:25:37
我不同意。我们使用Access作为我们的软件数据库近10年,并且经常损坏,直到我们必须将我们自己的“修复”选项引入到软件中。 我很欣赏你的观点,并且知道你在Access方面也有很多经验,但这并不是虐待,只是一个事实,当它被大量使用时。 – 2009-10-23 07:50:33
“它经常损坏,直到我们必须将我们自己的”修复“选项引入到软件中” - 在那里:) – onedaywhen 2009-10-23 09:29:42
什么版本的Access是MDB格式化的?你使用DAO或ADO来访问数据库。 MDB在2003年还是2007年?我怀疑它是A2007格式,而您遇到麻烦的机器安装了A2003或者没有Access版本。而工作的机器上安装有A2007。但这只是一个猜测。
您还需要跟踪只读问题。
您不需要安装MSAccess以将.mdb文件用作数据库,只需安装MDAC并使用ADO进行连接即可。 – 2009-10-24 07:09:49
Toby:或者您可以使用DAO,因为它带有Windows 2000,XP,Vista和7操作系统。 (我认为德尔福也支持DAO。) – 2009-10-24 18:59:24
你说:“它在我的PC和其他一些PC上运行良好。”
然后它听起来像你的程序可能没有任何问题。可能的是,它始终无法工作的PC没有安装Microsoft Office或至少Microsoft Access。他们需要安装ADO才能工作。
如果没有进一步的线索,机器上的“有时”问题很难诊断。
恐怕我不知道“只读”问题可能是什么。
我有Access 2007,但该文件是Access 2000文件(我选择了最旧的可能文件格式)。有这个问题的计算机也安装了Access(与我的版本不一样)。 – 2009-10-23 06:12:58
您是否在有问题的PC上检查了mdb文件的只读状态? – 2009-10-23 07:51:51
对不起,这只是错误的,你不需要安装Access使用MDB文件,你只需要MDAC(从微软免费下载)。很少有机器可以安装。 – 2009-10-24 07:10:56
- 1. 在Delphi 7上离开ComboBox的问题
- 2. 如何使用Delphi打开Access 97数据文件
- 3. 问题将Access 2007数据库从win XP升级到Win 7 64位机器
- 4. 问题,同时打印从数据库
- 5. Access数据库分割问题
- 6. 从数据库打开表
- 7. MS Access - 从URL打开数据库表格
- 8. 从Access数据库
- 9. 数据库开发问题
- 10. 从Textbox帮助更新Access数据库的问题?
- 11. 使用Access 2010打开和编辑Access 2003的问题
- 12. android零星的数据库没有打开的问题
- 13. 在Python中打开berkeley数据库的问题
- 14. SQLite - 打开存在数据库的问题
- 15. 在Delphi 7中的FormShow问题
- 16. Windows 7中的Delphi VCL“TaskDialog”问题
- 17. 用c#打开Delphi ZLib压缩数据#
- 18. MySQL从数据库问题
- 19. 从MS Access数据库(VB.NET)
- 20. 从MS Access数据库
- 21. 试图打开Access数据库使用Process.Start“数据库未附加”
- 22. 如何在打开数据库时压缩MS Access数据库,使用vba
- 23. (delphi)打印图像问题
- 24. 访问数据库打开为只读
- 25. 如何读取Access数据库时,由另一个人打开
- 26. 如何强制Access在数据库打开时刷新引用
- 27. 如何打开/加载数据从xml文件到delphi的tcxgrid?
- 28. SQLite问题“无法打开数据库文件”
- 29. 从Excel中打开Access VBA
- 30. 从VB打开另一个用户正在使用的MS Access数据库
您使用的是DAO还是ADO? – 2009-10-24 19:04:29