Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

accdb with CF9 under Win2008 R2 64bit

Explorer ,
Jan 27, 2012 Jan 27, 2012

Hi there

I have a accdb designed with Access 2010 64bit.

I am running CF9 under Win2008 R2 64bit.

I have also installed http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255

I have now googled and tried some dozen tricks to get this combination work:

until now - no way!

Does anybody succeed to to so and is there somewhere a description?

Thanx for help - Didi

TOPICS
Database access
30.6K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Feb 13, 2012 Feb 13, 2012

OK. That was that then. Let's move on.

I do believe our hopes now lie with JDBC. Since ColdFusion is a Java application, finding a 32-bit and 64-bit JDBC driver for MS Access will help many developers.

My search brought me to HXTT's JDBC driver for MS Access. The only problem is, I couldn't tell whether their driver is for 32-bit or 64-bit Access. Could it (hopefully) be universal, automatically detecting the system? 

(After the customary virus scan) I unpacked their access.zip file, copied the

...
Translate
Community Expert ,
Feb 08, 2012 Feb 08, 2012

Owain North wrote:

BKBK wrote:

That would in fact be my suggestion now: download and install an appropriate legacy 64 bit JDBC-ODBC driver SQL Server Express.

Point taken. However, mine is not to wonder why Access.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 08, 2012 Feb 08, 2012

Hi BKBK

thanx again a thousand times for spending competence and patience !!!

@Owain: I definitely agree - if starting on greenfield. Unfortunatly, we sometimes have to live with legacy.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guide ,
Feb 08, 2012 Feb 08, 2012

Completely agree it's not always so easy, and I'm sure no developer would ever be the one to choose Access. Take this thread as an example though - how many hours have you burned trying to get it to work? It's Access 2010, so someone somewhere is still actively upgrading your Access database, presumably still thinking it's the right thing to do.

I appreciate it's not always easy, but Access is not made for web applications. It never will be, and every time you come to change/upgrade you'll go through this much pain and then some.

If you can, I'd look at moving away from it before you find support is pulled completely

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 08, 2012 Feb 08, 2012

Didi,

Before I go JDBC, just one last stab with 64 bit, for the purpose of elimination. Set the DSN up in the Administrator, choosing "Microsoft Access" as driver.

For the "Database File", browse to and select your (64 bit) ACCDB file. Next, click on "Show Advanced Settings". Enter the following as "Connection String":

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=absolute_path_to_accdb_file

Click to "Submit" the changes. What is the result?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 08, 2012 Feb 08, 2012

BKBK wrote:

Didi,

Before I go JDBC, just one last stab with 64 bit, for the purpose of elimination. Set the DSN up in the Administrator, choosing "Microsoft Access" as driver.

For the "Database File", browse to and select your (64 bit) ACCDB file. Next, click on "Show Advanced Settings". Enter the following as "Connection String":

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=absolute_path_to_accdb_file

Click to "Submit" the changes. What is the result?

I guess I have done that before and it did not work - but I'll try it again (we NEVER give up 😉

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 08, 2012 Feb 08, 2012

I tried

  • jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=Z:\DATABASE\Didi\2010-64.accdb    OR
  • jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=Z:\DATABASE\Didi\2010-64.accdb;   OR
  • jdbc:odbc:Driver=Microsoft Access Driver (*.mdb,*.accdb);DBQ=Z:\DATABASE\Didi\2010-64.accdb

as well as

  • Database File = Z:\DATABASE\Didi\2010-64.accdb   AND/OR
  • System Database File = Z:\DATABASE\Didi\2010-64.accdb

Same result:

When registering:

Unable to update the NT registry.

Variable DRIVERPATH is undefined.

When verifying:

Connection verification failed for data source: movo2accdb

java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error: The specified DSN contains an architecture mismatch between the Driver and Application

The root cause was that: java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error: The specified DSN contains an architecture mismatch between the Driver and Application

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 09, 2012 Feb 09, 2012

Didi wrote:

I tried

  • jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=Z:\DATABASE\Didi\2010-64.accdb    OR
  • jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=Z:\DATABASE\Didi\2010-64.accdb;   OR
  • jdbc:odbc:Driver=Microsoft Access Driver (*.mdb,*.accdb);DBQ=Z:\DATABASE\Didi\2010-64.accdb

as well as

  • Database File = Z:\DATABASE\Didi\2010-64.accdb   AND/OR
  • System Database File = Z:\DATABASE\Didi\2010-64.accdb

Same result:

When registering:

Unable to update the NT registry.

Variable DRIVERPATH is undefined.

When verifying:

Connection verification failed for data source: movo2accdb

java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error: The specified DSN contains an architecture mismatch between the Driver and Application

The root cause was that: java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error: The specified DSN contains an architecture mismatch between the Driver and Application

Sufficient:

  • jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=Z:\DATABASE\Didi\2010-64.accdb
  • Database File = Z:\DATABASE\Didi\2010-64.accdb

Register. No need to verify. Now, run a ColdFusion CFM page containing the following code:

<cfquery name="testQ" datasource="movo2accdb">

select *

from your_table_name

</cfquery>

<cfdump var="#testQ#">

If this test succeeds, then your 64-bit installation will have worked. The error would have been caused by ColdFusion engaging the (my guess) 32-bit Macromedia driver and by the NT/DRIVERPATH issue which many consider a longstanding bug.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 10, 2012 Feb 10, 2012

Sorry I did not mention that:

of course I always do the 'practical' test as you proposed.

It gives me an error with a coherent comment:

java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error:  The specified DSN contains an architecture mismatch between the Driver and Application 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 13, 2012 Feb 13, 2012

OK. That was that then. Let's move on.

I do believe our hopes now lie with JDBC. Since ColdFusion is a Java application, finding a 32-bit and 64-bit JDBC driver for MS Access will help many developers.

My search brought me to HXTT's JDBC driver for MS Access. The only problem is, I couldn't tell whether their driver is for 32-bit or 64-bit Access. Could it (hopefully) be universal, automatically detecting the system? 

(After the customary virus scan) I unpacked their access.zip file, copied the essential file Access_JDBC40.JAR from /access/lib/ to ColdFusion's lib directory. That's all there is to installing the driver. I then restarted ColdFusion.

I went to the ColdFusion Administrator and configured a datasource as follows:

Data Source Name: myAccessDSN

Driver: Other

JDBC URL: jdbc:access:/C:/Users/BKBK/Documents/myDB.accdb

Driver Class: com.hxtt.sql.access.AccessDriver

Driver Name: com.hxtt.sql.access.AccessDriver

It worked flawlessly. But then again, though I installed everything you did, I am on 32-bit Access. 

accessDSN.jpg

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 13, 2012 Feb 13, 2012

Hi BKBK

Thanx! For the moment I am not able to try it on my system - but I will do ASAP 🙂

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 19, 2012 Feb 19, 2012

Hi BKBK (as of now Sorcerer Of ColdFusion) 

jdbc.GIF

Does this take any more words ???  

10^9 thanx to you!

-Didi

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 19, 2012 Feb 19, 2012

Thanks to you, too, Didi, for offering me this opportunity to learn.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 03, 2012 Feb 03, 2012
How did I configure the Access System DSN? By following the 7 steps above. My Office version is 32-bit, so I used C:\Windows\SysWOW64\odbcad.exe. If your Office version is 64 bit, then you should use C:\Windows\System32\odbcad.exe instead.

One more question:

I have a 64-bit Office with which I create a my.accdb, then I copy it to a 64bit server.

Why do I need to install AccessDatabaseEngine.exe and not AccessDatabaseEngine_x64.exe ?

That's absolutely confusing to me ....

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 03, 2012 Feb 03, 2012

ok, I finally did it!

Fortunately, my server is running as a VM on ESX. So I took a snapshot, deinstalled the AccessDatabaseEngine_x64.exe and installed AccessDatabaseEngine.exe.

Then I configured in SysWOW64\odbacd32.exe a DSN with the v14.0 Provider.

I think this is exactly what you meant by .. ?

In any case, that error message also tells me that your ACCDB file may be 64-bit. Again, for the purposes of creating Microsoft Access DSN in ColdFusion, you will need to create a 32-bit System DSN using this 32-bit application: c:\windows\SysWOW64\odbacd32.exe.

Next: In CFadmin I added two datasources: one via odbc (movo2odbc), one directly with acces (movo2accdb):

Well, my data-coffin says:

WithALE32.GIF

Do you have this running under the same configuration ( CF9 under Win2008 R2 64bit ) ?

----------------------------

hi, we just crossed posting .. this one is done without reading the previous one. I will do so instantly ..

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Mar 24, 2012 Mar 24, 2012

hi there

I would follow up on this thread since it perfectly documents the background.

Let's summarize: with http://www.hxtt.com/access.html and BKBK's support we now have a working environment.

One thing puzzles us:

The following steps work fine:

  1. SELECT qry from CF9 to the  DS
  2. UPDATE DS from CF9
  3. SELECT qry from CF9 to the DS (this reflects the change made in the step before)

But this procedure does not work

  1. SELECT qry from CF9 to the  DS
  2. UPDATE the underlying table from within MS Access
  3. SELECT qry from CF9 to the  DS (this does NOT reflect the change made in the step before)

What we already tried:

  • CFOBJECTCACHE does not help.
  • Setting "" in CFadmin does not help.
  • Disabling "Maintain Connections" in the Datasource does not help (see below).

hxtt-1.GIF

Anybody a helpful idea?  (A recommendation to change the database is NOT regarded as helpful )

-Didi

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guide ,
Mar 24, 2012 Mar 24, 2012

A recommendation to change the database is NOT regarded as helpful

Dammit, that's me out then.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Mar 24, 2012 Mar 24, 2012

Procedure 1:

  1. SELECT qry from CF9 to the  DS
  2. UPDATE something in DS from CF9
  3. UPDATE something else in the underlying table from within MS Access
  4. SELECT qry from CF9 to the  DS

Procedure 2:

  1. SELECT qry from CF9 to the  DS
  2. UPDATE something in the underlying table from within MS Access
  3. UPDATE something else in DS from CF9
  4. SELECT qry from CF9 to the  DS

Does these procedures work? That is, does step 4 reflect both changes made in steps 2 and 3?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Mar 24, 2012 Mar 24, 2012

>>JDBC URL: jdbc:access:/C:/Users/BKBK/Documents/myDB.accdb

>But this procedure does not work

>    SELECT qry from CF9 to the  DS

>    UPDATE the underlying table from within MS Access

>    SELECT qry from CF9 to the  DS (this does NOT reflect the change made in the step before)

You need lockType=ACCESS connection property, then HXTT Access and MS Access can see each other.

For instance,  JDBC URL: jdbc:access:/C:/Users/BKBK/Documents/myDB.accdb?lockType=ACCESS

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Mar 24, 2012 Mar 24, 2012

HXTT Support wrote:

>>JDBC URL: jdbc:access:/C:/Users/BKBK/Documents/myDB.accdb

>But this procedure does not work

>    SELECT qry from CF9 to the  DS

>    UPDATE the underlying table from within MS Access

>    SELECT qry from CF9 to the  DS (this does NOT reflect the change made in the step before)

You need lockType=ACCESS connection property, then HXTT Access and MS Access can see each other.

For instance,  JDBC URL: jdbc:access:/C:/Users/BKBK/Documents/myDB.accdb?lockType=ACCESS

Wow! HXTT Support! What a privilege!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Mar 24, 2012 Mar 24, 2012

BKBK:

good idea to isolate the problem! -Thanx for the input!

HXTT Support:

Even better - now it works - triple Thanx for the solution!

hxtt-2.GIF

For those who recommend to change the DB (Owain, are you still there?   😞

We made some performance tests and compared 'accdb plus HXTT' with SQL 2008 Express.

'accdb plus HXTT' is incredibly fast. Regarding our application you cannot measure a difference in response time ..

-Didi

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guide ,
Mar 24, 2012 Mar 24, 2012

When you have one user and all the files are already cached, maybe

Wait for a second user to hit your site, it'll be like a DDOS.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Mar 24, 2012 Mar 24, 2012

Owain North wrote:

When you have one user and all the files are already cached, maybe

Wait for a second user to hit your site, it'll be like a DDOS.

I absolutely agree, that accdb is not intended for a huge multiuser environment.

However, ColdFusion is the only user.

Since more than a decade I am told to trash MDBs since they will not perform.

On the other hand I have applications with half a million hits per day that do not even twinkle between two requests. Otherwise students learning for exam would rub through my doormat

As soon as performance drops, I definitely change ..

Besides some legacy stuff I can't get rid off on the fast lane (we have applications running from the 90s),  I somehow have started to regard this discussion about the lousy performing mdb as a kind of intellectual challenge

-Didi

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Mar 24, 2012 Mar 24, 2012

>   When you have one user and all the files are already cached, maybe

First, according to one customer's random access( which needn't  cached for recycle) report for  big file on CD-R, HXTT Access engine is faster than MS Access ODBC engine.

Secondly, on lockType=ACCESS mode, HXTT Access won't use cache, since MS Access and HXTT Access can't share cache for concurrent according to old MS Access lock mechanism. HXTT Access has a faster data format parser/loader, and can utilize existent index fully for most sql.

Thirdly, only without lockType=ACCESS mode, HXTT Access can use multi-level cache, for physical file, object query reslut, session, transaction. All core is smaller, and HXTT Access can run on mobile platform.

Forth, only with assigned delayecClose connection property, HXTT Access can choose to build temporary index for big table without existent index.

According to performance test, HXTT drivers is faster than most of popular databases.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Mar 24, 2012 Mar 24, 2012

HXTT Support wrote:

>   When you have one user and all the files are already cached, maybe

First, according to one customer's random access( which needn't  cached for recycle) report for  big file on CD-R, HXTT Access engine is faster than MS Access ODBC engine.

Secondly, on lockType=ACCESS mode, HXTT Access won't use cache, since MS Access and HXTT Access can't share cache for concurrent according to old MS Access lock mechanism. HXTT Access has a faster data format parser/loader, and can utilize existent index fully for most sql.

Thirdly, only without lockType=ACCESS mode, HXTT Access can use multi-level cache, for physical file, object query reslut, session, transaction. All core is smaller, and HXTT Access can run on mobile platform.

Forth, only with assigned delayecClose connection property, HXTT Access can choose to build temporary index for big table without existent index.

According to performance test, HXTT drivers is faster than most of popular databases.

aha!

So,

        jdbc:access:/C:/Users/BKBK/Documents/myDB.accdb?lockType=ACCESS

is ok for a developer environment.

So, what configuration would you (HXTT Support, not you Owain ) recommend for a productive installation?

       jdbc:access:/C:/Users/BKBK/Documents/myDB.accdb? ... delayedClose .. maxCacheSize .. lockTimeout.. etc. ???

Is this for CF9 still valid as for CF6.1 (as stated in your FAQ)?:

       ?delayedClose=15;maxCacheSize=6144;lockTimeout=2000

-Didi

PS: hey Owain, do not misunderstand me, it's not personal, just the challenge I mentioned above


Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Mar 26, 2012 Mar 26, 2012

>So, what configuration would you (HXTT Support, not you Owain ) recommend for a productive installation?

It's only a jdbc url demo. You need only lockType=ACCESS since you need MS Access concurrent access. You can add other connection property if you need some special feature, for instance, ODBCTrimBehavior or caseInsensitive.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources