Time to get serious about supporting VB database apps?
Michael Stefaniuc
mstefani at redhat.com
Wed Nov 23 08:57:16 CST 2005
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&long_desc=mdac_typ
>
>
> 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=automation+error
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_desc=dbgrid32.ocx
>
>
> 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
--
Michael Stefaniuc Tel.: +49-711-96437-199
Sr. Network Engineer Fax.: +49-711-96437-111
Red Hat GmbH Email: mstefani at redhat.com
Hauptstaetterstr. 58 http://www.redhat.de/
D-70178 Stuttgart
More information about the wine-devel
mailing list