Microsoft Data Access Components and 64 bits investigation. (Patreon)
Content
This component has been key part of windows for a long time and traditionally installing mdac28 via winetricks was the easiest solution to get it working under wine. This solution now only works when using a win32 prefix, as winetrick was changed to stop installing components that only support 32 dlls into a mixed 32/64 prefix.
Only having half the DLL's installed, may lead to the prefix not being updated correctly when changing wine versions. The basic scenario is when 32 dll native but 64 is builtin, if the override was then set to native, the dll isn't register correctly. Before changes made in 5.x series, having mdac28 installed, updating wine versions would required that you reinstall mdac28 to ensure the correct overrides where in-place.
Now, for many of us, this isn't an issue, we would just create a 32 bit prefix.
* Where does the problem exists?
When applications developers transition into the 64 realm that require Data Access, they cannot simply install mdac28 anymore, as mdac28 only contains 32bit dlls. There isn't a single package that will install all the components required as these dll's are now part of a standard windows install.
For companies that support wine, this means they will have to either
1. Stop wine support when there application goes to 64 bits.
2. Support 32/64 for longer then they expected.
3. Use other means to access the database back ends (direct DB access is the normal way).
For there customers that use wine,
No matter what they choose initially, they will probably going to end up at 1 since it's the easiest and most cost effective.
Amount of work involved.
Huge, and I think this is an under estimate.
* odbc32
This module currently uses unixodbc but the downfall of this, is that it cannot load any windows dlls thus limited your option to only the ones available for you linux distro.
Basically this module would need to either
1. Import unixodbc and use it as a windows DLL,
or
2. Implement it based off unixodbc.
* msado15
This module handle ADO recordset and thus needs to support external objects. Some work has already been done on this but it's a long way from being finished.
* msdasql
Currently wine doesn't have this dll but its the key to support ODBC via ADO, currently used by many applications.
All of thses are linked, msado15 requires msdasql and msdasql requires an odbc32 implementation, so basically all three have to be developed in parralle.
Just something to think about, wine isn't always about games.