【问题标题】:Test connection error with delphi 7 and MS access 2010使用 delphi 7 和 MS access 2010 测试连接错误
【发布时间】:2015-01-09 00:49:29
【问题描述】:

我的表单中有一个 Ado 连接并使用 Access 2010(accdb 数据库)64 位系统

我在 access 2010 中为我的数据库设置了密码

我正在使用 Ado 连接字符串来连接 Delphi 7 和 2010 Access 数据库。

当我尝试设置连接时,出现错误提示 “由于初始化提供程序时出错,测试连接失败。无法打开数据库。”它可能不是您的应用程序识别的数据库,或者文件可能已损坏。

但是,当我创建另一个没有密码的数据库时,ado 连接字符串在测试连接后起作用。

我也安装了 AccessDatabaseEngine 但它仍然无法正常工作。此外,Ado 在我另一台 32 位系统的计算机上使用密码,但在 64 位系统上失败。 解决方案是什么?为什么会这样?

【问题讨论】:

  • 您应该始终包含delphims-access等常用标签。它们对于语法荧光笔和对您的问题的更多关注很有用。请编辑您的问题
  • 我发现测试连接错误是因为我使用的ms-access 2007数据库不支持2010数据库的某些功能。我只是将 Ms-access 2010 数据库恢复为“Access 2007 格式”并解决了问题。另外,运行用delphi 7和Ms-access 2010创建的应用程序在Ms-access 2007上是不行的,但是会出现错误。

标签: delphi ms-access-2010 delphi-7


【解决方案1】:

似乎 ADO ConnectionString Builder 没有创建与受密码保护的 mdb 一起使用的连接字符串......至少我无法让它工作:-)

使用 ADO ConnectionString Builder 时出现错误,“无法启动您的应用程序。工作组信息文件丢失或由其他用户独占打开。”这是出现故障的连接字符串: p>

Provider=Microsoft.Jet.OLEDB.4.0;Password=MyPwd;Data Source=C:\...\MyDB.mdb;Persist Security Info=True

我通过编写分配此SO solution 中建议的连接字符串的代码解决了这个问题。这是我的代码:

ADOConnection1.LoginPrompt := false;
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\...\MyDB.mdb;Jet OLEDB:Database Password=MyPwd;';
ADOConnection1.Connected := true;

注意:我在 Win 7 64 位上使用 Delphi XE3,32 位应用程序。

【讨论】:

  • 只要到第四页就会发现很多Jet OLEDB:参数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多