【问题标题】:ColdFusion 11 and Microsoft AccessColdFusion 11 和 Microsoft Access
【发布时间】:2015-07-14 04:43:32
【问题描述】:

我在 Windows Server 2012 上运行 AWS 每小时 ColdFusion 11 实例。它已锁定。

我正在尝试通过 cfquery (DSN) 访问 .MDB 文件。

我已按照http://blogs.coldfusion.com/post.cfm/coldfusion-10-64bit-and-msaccess 的说明进行操作,http://www.coldfusionmuse.com/index.cfm/2010/12/31/Access.on.64bit.ColdFusion 提供了几乎相同的答案。

此外,我对 ColdFusion Windows 用户拥有 HKEY_LOCAL_MACHINE/SOFTWARE/ODBC 完全权限。

根据 Anit 的建议,我安装了 32 位 AccessDatabaseEngine。我删除了 ODBC 工具和 CF 管理员中的所有数据源并重新添加了它们。我还将服务登录从锁定用户更改为本地服务以获得完整权限。我什至重新启动了整个服务器。

但是我在运行时得到“[Macromedia][SequeLink JDBC Driver][SequeLink Server]指定的数据源未定义”:

<cfquery name="CJT" datasource="membersAdministration">
    SELECT *
    FROM MSysObjects
</cfquery>

我在 CF Admin 中添加了 Microsoft Access 数据源,并为其命名和数据库文件。按预期收到的结果是:“无法更新 NT 注册表。变量 DRIVERPATH 未定义。”

然后我运行“C:\Windows\SYSWOW64\odbcad32.exe”并以相同的名称和路径添加系统 DSN。

我什至尝试过重启 CF。

我看到 HKEY_LOCAL_MACHINE/SOFTWARE/ODBC 和 HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/ODBC 有新条目。

有什么我可能缺少的想法吗?

这是堆栈跟踪:

java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][SequeLink Server]The specified data source is not defined.
    at macromedia.sequelink.ssp.Diagnostic.toSQLException(Unknown Source)
    at macromedia.sequelink.ssp.Chain.cnvDiagnostics(Unknown Source)
    at macromedia.sequelink.ssp.Chain.decodeDiagnostic(Unknown Source)
    at macromedia.sequelink.ssp.Chain.decodeBody(Unknown Source)
    at macromedia.sequelink.ssp.Chain.decode(Unknown Source)
    at macromedia.sequelink.ssp.Chain.send(Unknown Source)
    at macromedia.sequelink.ctxt.conn.ConnectionContext.connect(Unknown Source)
    at macromedia.jdbc.sequelink.SequeLinkImplConnection.open(Unknown Source)
    at macromedia.jdbc.slbase.BaseConnection.connect(Unknown Source)
    at macromedia.jdbc.slbase.BaseConnection.setupImplConnection(Unknown Source)
    at macromedia.jdbc.slbase.BaseConnection.open(Unknown Source)
    at macromedia.jdbc.slbase.BaseDriver.connect(Unknown Source)
    at macromedia.jdbc.MacromediaDriver.connect(Unknown Source)
    at coldfusion.server.j2ee.sql.pool.JDBCPool.createPhysicalConnection(JDBCPool.java:614)
    at coldfusion.server.j2ee.sql.pool.ConnectionRunner$RunnableConnection.run(ConnectionRunner.java:67)
    at java.lang.Thread.run(Thread.java:745)

【问题讨论】:

  • 您需要安装Microsoft Access 2013 Runtime microsoft.com/en-us/download/details.aspx?id=39358
  • 您为什么使用 Access? Access 并不是真正设计为以这种方式使用的。最好使用 MySQL、PostgreSQL 或 SQL Server Express。
  • @ScottStroz 这是客户对他们获得的东西的要求。我们完全清楚后果。
  • 我已经很久没有使用过 CF11(或 Access),所以这可能是一个愚蠢的问题,但是......如果你使用 MS Access Unicode 驱动程序,你会得到相同的结果吗?显然不是同一个驱动程序,但我记得上次使用它时使用它的运气比使用 ODBC 好。
  • @ChrisTierney,也以被动模式安装 64 位 AccessDatabaseEngine。

标签: ms-access coldfusion windows-server-2012


【解决方案1】:

我知道这是一篇旧帖子。但我需要连接一些较旧的数据库。 Windows 2016 服务器上的 ColdFusion 2016。它不会连接到 Access 数据库。

所以我更新了一切,更新了服务器,更新了 ColdFusion。

然后我安装了 MS Office 2016 (Access),然后再次更新了所有内容。

成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2020-12-21
    • 2020-09-13
    相关资源
    最近更新 更多