2
votes

I'm running the AWS hourly ColdFusion 11 instance on Windows Server 2012. It's locked down.

I'm trying to access a .MDB file via cfquery (DSN).

I have followed the instructions at http://blogs.coldfusion.com/post.cfm/coldfusion-10-64bit-and-msaccess and http://www.coldfusionmuse.com/index.cfm/2010/12/31/Access.on.64bit.ColdFusion provides almost the same answer.

In addition I have HKEY_LOCAL_MACHINE/SOFTWARE/ODBC full permissions to the ColdFusion Windows User.

Per Anit's suggestion I installed the 32-bit AccessDatabaseEngine. I deleted all datasources in both the ODBC tool and CF's admin and re-added them. I also changed the service login from the locked down user to the local service for full rights. I even restarted the whole server.

However I get "[Macromedia][SequeLink JDBC Driver][SequeLink Server]The specified data source is not defined" when running:

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

I added the Microsoft Access Datasource in CF Admin giving it a name and database file. The results received as expected was: "Unable to update the NT registry. Variable DRIVERPATH is undefined."

I then ran "C:\Windows\SYSWOW64\odbcad32.exe" and added the System DSN under the same name and path.

I even tried restarting CF.

I see that HKEY_LOCAL_MACHINE/SOFTWARE/ODBC and HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/ODBC have the new entries.

Any ideas what I might be missing?

Here's the stack trace:

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)
1
You need to install Microsoft Access 2013 Runtime microsoft.com/en-us/download/details.aspx?id=39358Anit Kumar
Why are you using Access? Access is not really designed to be used this way. You would be better off using MySQL, PostgreSQL or SQL Server Express.Scott Stroz
@ScottStroz this is a client requirement for something they acquired. We are fully aware of the consequences.Chris Tierney
I have not used CF11 (or Access in a long time), so this may be a silly question but ... do you get the same result if you use the MS Access Unicode driver instead? Obviously not the same driver, but I remember having better luck with it than with ODBC last time I played around with it.Leigh
@ChrisTierney, install the 64-bit AccessDatabaseEngine in passive mode as well.Anit Kumar

1 Answers

0
votes

I know this is an old post. But I needed to connect some older databases. ColdFusion 2016 on a Windows 2016 Server. It would not connect to an Access Database.

So I updated everything, Server updated, ColdFusion updates.

I then installed MS Office 2016 (Access) and then updated everything again.

That worked.