http://bugs.winehq.org/show_bug.cgi?id=22874
--- Comment #5 from Barry Bird birdfamily715@googlemail.com 2010-05-25 15:42:38 --- Perhaps I need to give a bit more detail of what this is all about. I would like to see Wine supporting ADO for my own purposes. As you seem to have mastered COM/DCOM, no mean feat, I thought I might be able to help you deal with ADO, as I have found out how to drive ADO at a low level, from C. So I wrote as simple a console program as I could and compiled the program on Windows XP using Mingw. It was linked with libraries -lole32 -loleaut32 -luuid You have the source. What it does in VB terms is:
- set obj = CreateObject("ADODB.Connection") - obj.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=stock.mdb;Jet OLEDB:Engine Type=4","","",0) - obj.Close
It has a number of printf statements so that you see its progress. On Windows the output is: $ ado1a.exe ADODB Object created CallMethod entered GetIDsOfNames returned Invoke 'Open' succeeded ADODB connection opened CallMethod entered GetIDsOfNames returned Invoke 'Close' succeeded Close down
On Kubuntu I created a clean new wine prefix, installed MDAC28 and JET40 using winetricks and just added a few extra registry entries I mentioned earlier. When this program is run I got: $ ./ado1a.exe err:ole:CoGetClassObject class {6c736db1-bd94-11d0-8a23-00aa00b58e10} not registered err:ole:CoGetClassObject no class object {6c736db1-bd94-11d0-8a23-00aa00b58e10} could be created for context 0x1 ADODB Object created CallMethod entered GetIDsOfNames returned err:ole:CoGetClassObject class {2206cdb0-19c1-11d1-89e0-00c04fd7a829} not registered err:ole:CoGetClassObject no class object {2206cdb0-19c1-11d1-89e0-00c04fd7a829} could be created for context 0x1 err:ole:CoGetClassObject class {c8b522cf-5cf3-11ce-ade5-00aa0044773d} not registered err:ole:CoGetClassObject no class object {c8b522cf-5cf3-11ce-ade5-00aa0044773d} could be created for context 0x1 Invoke Method 'Open' failed: HRESULT 80020009 ** Invoke Method 'Open' failed Open connection failed
I'm not sure whether the log file (if only I could upload it), tells you much more. A Query Interface fails and the message L"Provider cannot be found. It may not be properly installed." is produced. It seems to me that it all reduces to the inability to register oledb32.dll with the interfaces MSDASC.MSDAINITIALIZE (2206cdb0-19c1-11d1-89e0-00c04fd7a829) and MSDAER (c8b522cf-5cf3-11ce-ade5-00aa0044773d) (at least).