We have a .Net-App that uses Access-Datases (.mdf-files). Since we are german the default-installation-folder for our app is "C:\Program Files (x86)\Promess GmbH\Prüfplanung". Notice the german "ü" in the path. We do this since many years, many different Windows-Versions and in many different local settings on multilingual windows-systems. Even on machines in thailand, china and other countries which are not using german umlaute. Never encountered any problems with it. But now I have a problem when opening the Database on a thai-windows10-64bit with locale set to german. When I install our program to a folder without "ü" everything works fine but when I leave it with "ü" I cannot open a connection to access. Here are just some parts of the Code:
Private m_Connection As ADODB.Connection
Dim m_DbConnStr As string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SPCData\UserWorks\Planning\Promess_Test_alle_112K_2.4.05.mdb;User ID=Admin;Password=;"
m_Connection.Mode = ConnectModeEnum.adModeReadWrite
Try
m_Connection.Open(m_DbConnStr)
Catch ex As System.Runtime.InteropServices.COMException
'handling the exception
End Try
As you see there is no reference to the install-folder ("C:\Program Files (x86)\Promess GmbH\Prüfplanung") in the connectionstring. m_Connection.Open trows a COMException which looks like this
Stacktrace:
at ADODB.ConnectionClass.Open(String ConnectionString, String UserID, String Password, Int32 Options)
at Promess.Spc.Storage.Database.Database.OpenDatabase(String connect) in S:\WinSPC\Pruefplanung\Storage\Storage.vb:line 1618
I used Sysinternals Process Monitor to get a clue of whats going on and saw the following:
with the folloing stacktrace
Someone (I think it's the MS-Jet-Engine) tries to access \Pr?fplanung\system.mbd which is of course an invalid path. Our sourcecode does not refere to a "system.mdb" anywhere.
So my quetsions is why is jet trying to access this invalid? Can I prevent it? On other Systems (non-germans as well) it works as it should and I don't know what to do to prevent the exception. Only workaround is not using "ü" in the setup-path.
My program uses .Net-Framework 4.8


