What would it take to really support MS database client apps in Wine? The situation is not copacetic; everywhere you turn, it's easy to find enough problems to stop the average VB database app.
I tried installing a real world small government app. It used VBSQL.OCX, and required a file from the SQL 7.0 Client redistributables. Here's the script I used to install it (yikes): http://www.kegel.com/wine/initvbapp.sh.txt I lost touch with the guy who needed this app, presumably he gave up because it was so hard to install under Wine. Here are all the bugs related to mdac installation: http://bugs.winehq.org/buglist.cgi?product=Wine&long_desc_type=substring...
Another VB database app installed (after some effort), but failed with an "automation error". http://bugs.winehq.org/buglist.cgi?long_desc_type=substring&long_desc=au...
Other VB apps use "dbgrid32", and a small sample app that uses that currently fails. See http://bugs.winehq.org/buglist.cgi?short_desc_type=allwordssubstr&short_...
Perhaps it's time to create an open source torture test in VB 6 that exhibits as many of these problems as possible, and use that as a regression test in Wine.
Anyone willing/able to take that on? Roderick Colenbrander wrote the DBGRID32.OCX test; perhaps he'd be willing to write an expanded set of tests? - Dan
Dan Kegel wrote:
What would it take to really support MS database client apps in Wine? The situation is not copacetic; everywhere you turn, it's easy to find enough problems to stop the average VB database app.
I do not know what special needs the VB database apps have but for sure they need a good oleaut32.dll. At least the variant arithmetic functions aren't good enough for your requirements. With good enough i mean is that they do not handle all the input variants that native oleaut32 are handling. That isn't hard to implement but requires a lot of tests as this functions are very poorly documented and are designed specificaly to support only the variants they get passed down by the VB runtime. Good examples of such tests and implementation are VarMul, VarAdd and 1-2 other functions (from which i adapted the tests for VarMul and VarAdd). A sign for a not "fully" implemented variant arithmetic function is a fixme which says something like "VarXxx partial implementation, doesn't support vt ..." (if you get this it is the source of the automation error you more than probably got too) or if the function returns E_FAIL. From my experience so far with variant arithmetic functions those return in the native oleaut32 DISP_E_BADVARTYPE or DISP_E_TYPEMISMATCH.
I tried installing a real world small government app. It used VBSQL.OCX, and required a file from the SQL 7.0 Client redistributables. Here's the script I used to install it (yikes): http://www.kegel.com/wine/initvbapp.sh.txt I lost touch with the guy who needed this app, presumably he gave up because it was so hard to install under Wine. Here are all the bugs related to mdac installation: http://bugs.winehq.org/buglist.cgi?product=Wine&long_desc_type=substring...
Another VB database app installed (after some effort), but failed with an "automation error". http://bugs.winehq.org/buglist.cgi?long_desc_type=substring&long_desc=au...
Automation errors are of different kinds: easy to fix and hard to fix. #2480 would be an easier one to fix: The problem is in the VarCmp (variant arithmetic) function and the function would need to be changed to accept that combination of variant types the fixme is complaining about. No need to do it here as i resumed my work on VarCmp to make it accept the same input variants as native function in WinXP does. #1713 is a hard to fix bug as the OLE object functionality isn't implemented yet for richedit. Nor will it be according to the last comment in the bug report.
Other VB apps use "dbgrid32", and a small sample app that uses that currently fails. See http://bugs.winehq.org/buglist.cgi?short_desc_type=allwordssubstr&short_...
Perhaps it's time to create an open source torture test in VB 6 that exhibits as many of these problems as possible, and use that as a regression test in Wine.
At least for oleaut32 it isn't needed, the normal wine tests are good enough.
Anyone willing/able to take that on? Roderick Colenbrander wrote the DBGRID32.OCX test; perhaps he'd be willing to write an expanded set of tests?
bye michael