2

Because the jdbc odbc bridge is no longer available (see this question/answer), I tried UCanAccess, which works great reading the database, but on Windows 10, throws an error on a write attempt: ([CONCURRENT_PROCESS_ACCESS] - File marked as read only. Notice that only one process (one VM) for time can access in writing mode.).

The same code reads and writes perfectly using the UCanAccess driver on Windows 8.1 and Windows 7.

I am currently unable to tinker since I don't have a Windows 10 system; the tests were performed by a power user on a single Windows 10 install. The mdb file in question was fully accessible by the user. Several path locations for the mdb file were tested (c:\ProgramData, Downloads) with the same result: reads fine, writes fail.

If any Windows 10 user wants to test this for themselves in various directories and possibly manipulating permissions, that would be great.

Here is a link to the mdb file I'm using. Here is a link to the test program (as an exe). Here is a link to the source code.

The test process would be to place the mdb file, then run the test program with the parameter of the path. So at a Windows command prompt, something like:

TestDbAccess c:\my\dir

Where c:\my\dir is where you put the mdb file.

UPDATE: I should have included in the original question that running on actual hardware is what is desired, as opposed to running virtualized in VBox.

UPDATE2: FALSE ALARM: The mdb file in question really was "Access 97" level, based on byte 20 of the file. The problem was that the component that had the task of creating the mdb file somehow created it as "Access 2000" sometimes and "Access 97" at other times. Exactly how that happened still remains a mystery, but it does not appear to depend on the underlying OS version. My advice to anyone who runs into the CONCURRENT_PROCESS_ACCESS error: believe it!

Community
  • 1
  • 1
Dale
  • 4,421
  • 2
  • 37
  • 68
  • 1
    The 2.0.9.5 differentiates two separate error messages for the concurrent process access and the read-only access 97: the merge in one message of two different causes of the read-only state, made the message misleading. – jamadei Apr 29 '15 at 09:40
  • Thanks jamadei, At least something good came out of the fire-drill. – Dale May 20 '15 at 15:56

1 Answers1

3

UCanAccess and Jackcess do not have a problem with Windows 10 per se. I just used UCanAccess to run this SQL statement ...

UPDATE CW_EPG_CAPTURES SET title = 'Win10 test'

... against your sample database (cw_record.mdb, which is in Access 2000 format) on a VirtualBox virtual machine with

  • Windows 10 Pro Technical Preview, Build 10041 (64-bit)
  • JDK 7u45 (64-bit)
  • NetBeans 7.4
  • UCanAccess 2.0.9.4

and it successfully performed the update without complaint.

The .mdb file was downloaded directly from the link in your question and saved into

C:\Users\Public

Update:

As it turns out, the problem had nothing to do with Windows 10. The issue was simply that an Access 97 file was sometimes being used for testing. Jackcess and UCanAccess just offer read-only support for Access 97 files.

Gord Thompson
  • 98,607
  • 26
  • 164
  • 342
  • @Gord..can you please help me on this ? when you are free..http://stackoverflow.com/questions/29801466/error-assigning-pass-through-query-to-report-recordsource-in-vba-code?noredirect=1#comment47731018_29801466 – Sai Avinash Apr 22 '15 at 15:01
  • Gord, You used Windows native (not the Oracle VBox)? I'm going to leave this question as unanswered for a little while in case someone else has the urge to run the test. Thanks Gord! We're up to 50% of UCanAccess attempts on Windows 10 succeed. – Dale Apr 22 '15 at 15:25
  • @Dale - No, it was a VirtualBox VM on a Windows 7 host. – Gord Thompson Apr 22 '15 at 15:35
  • I concur with Gord's assessment in his update, above: Nothing to do with Windows 10....false alarm. Sorry. – Dale Apr 26 '15 at 02:16
  • I'm getting error `No suitable driver found for jdbc:ucanaccess://F:/RBL_test.accdb` in JDK 8. What should I do? – Nayan Dec 02 '16 at 01:52
  • @Nayan - *"What should I do?"* - [Ask a new question](http://stackoverflow.com/questions/ask). – Gord Thompson Dec 02 '16 at 02:09