Results 1 to 9 of 9

Thread: Win 7 SP1 Breaks ADODB Binary Compatibility

Threaded View

  1. #1

    Thread Starter
    PowerPoster dilettante's Avatar
    Join Date
    Feb 2006
    Posts
    24,487

    Win 7 SP1 Breaks ADODB Binary Compatibility

    It appears that the current issue of Windows 7 SP1 (which might be re-released or patched later) made some breaking changes in its ADODB typelibs.

    The symptom is that a program that early binds to ADO is compiled under Win7 SP1 can only be run on Win7 SP1.

    Different errors may be seen, such as "Procedure declaration does not match description of event or procedure having the same name."

    The suggested workarounds include:
    • Don't install (or uninstall) SP1 on Win7 dev machines.
    • Try to obtain pre-Win7 SP1 ADO library and typelibs and shoehorn them into Win7 SP1 (fighting Windows File Protection).
    • Rewrite everything to use late binding with ADO.

    This will impact anyone using early-bound ADO objects whether in VB6, VFP, Delphi, .Net languages, or anything else.

    On WikiPedia I found the statement:
    Windows 7 SP1 has broken backwards compatibility of MDAC 2.8. Software compiled on Windows 7 SP1 that relies on MDAC 2.8 will not work on Windows XP (possibly not Vista either).
    I don't know whether this is simply imprecise, or whether in reality it means only the Win7 SP1 typelib for ADO 2.8 compatibility is broken. In other words programs binding against e.g. the ADO 2.5 typelib might still work fine.

    Breaking change in MDAC ADODB COM components in Windows 7 Service Pack 1


    Note there there have been binary compatibility breaks in ADOX off and on over the different Service Pack levels of Vista and Windows 7 as well. The best fix there is probably late binding, which isn't so bad because ADOX object use tends to be more localized in typical programs.


    This may be most painful to people who work on applications in a transitional state between VB and VB.net who are following the often-recommended "change things a piece at a time" approach and have hybrid applications. They may have a good working knowledge of VB.Net but much thinner VB6 and COM skills, resulting in a harder time coping with the problem.
    Last edited by dilettante; Mar 5th, 2011 at 11:12 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width