Announcement

Collapse
No announcement yet.

SQLTools and ODBC Driver Distribution

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQLTools and ODBC Driver Distribution

    I'm using SQLTools with PBDLL6.0. As I read MicroSoft's license agreement, it sounds like I cannot distribute MicroSoft ODBC drivers with my application because primary development was not done with a MicroSoft product. So what do I do? I have a program I want to distribute that use a MSAccess database. Do I have to leave it up to my customers to get thier own ODBC driver and install it?
    Brent Boshart

  • #2
    Brent --

    IMPORTANT DISCLAIMER: I am not an attorney. Perfect Sync, Inc. and I, as an individual, disclaim all responsibility and liability for information and/or opinions that may be provided in this document regarding your legal rights and responsibilities under the Microsoft license agreement, or regarding any other legal matter. You should consider consulting a qualified attorney before making any decisions about these matters.

    In other words, I apologize for all of the vague and convoluted language, but it can't be helped.

    That being said...

    As you know from reading the Microsoft license (and the SQL Tools Help File, which talks about these issues), Microsoft places certain restrictions on the distribution of Microsoft Access ODBC drivers. The basic idea seems to be that the ODBC drivers are a Microsoft product, so nobody but Microsoft can distribute them without restrictions. However Microsoft does provide 1) a free downloadable package that, as I understand it (see below) can be installed and used by any Windows licensee, and 2) a package of files they call "redistributables" which you can legally distribute with your ODBC-based apps under certain conditions. This "MDAC" package contains the Access ODBC drivers.

    Keep in mind that we are only discussing your actual distribution of the MDAC files here. As far as I know, based my layman's reading of the license agreement, it is perfectly legal for you to provide detailed instructions for downloading and installing the MDAC package. And I believe that it is also perfectly legal for your customers to install and use them. After all, if you do it that way, Microsoft is distributing Microsoft's files, and everybody should be happy. As I understand it, Microsoft is only worried about (and you are only asking about) the RE-distribution of the MDAC files. Microsoft giving them to you, and you giving them to somebody else.

    If you are distributing an application that will be used with your customer's existing Access database, then the redistribution of the drivers is not an issue because the Microsoft Access installation program will allow your customer to install the Access ODBC drivers.

    Redistribution is also not an issue if your customer owns a copy of Microsoft Access. Remember that Microsoft Office (which includes Access) is one of the most popular software suites ever. (I heard once that the Microsoft Word install CD also includes the Access drivers, but I have not been able to confirm it. And if your customers are fellow developers, I believe that the various Microsoft Development Tools packages can also provide the drivers. Again, unconfirmed.)

    Redistribution is also not an issue if your customers are using Windows NT or 2000, because Access ODBC drivers are standard components of those operating systems. (Or at the very least, depending on the Windows installation, they can be installed from the Windows CD.) Interestingly, Microsoft has only made this an issue with Windows 95 and 98. (I do not know about Windows ME yet.) For some reason, while touting ODBC as the worldwide standard for database access, Microsoft has chosen to make certain specific things... more difficult.

    It also not an issue -- in most cases -- if using a database other than Access is an option for you. Microsoft has the most restrictive redistribution rules that I have seen, by far. (No surprise there.)

    However if none of those things are applicable, you will have to live with certain legal restrictions.

    I have spoken at length with the Microsoft legal department about these issues, and frankly they are not much help. Correction: They were no help. In the end, all they will do is read you the license -- which of course you have already read, or you wouldn't be calling them -- and they will tell you that it is up to you (and presumably your attorney) to decide whether or not your proposed use fits the terms of their license. They will not interpret it for you in any way. Even if you tell them exactly what you want to do, they will not give you an opinion -- even a hint -- as to whether or not it would be acceptable.

    Once again, only you (and your attorney) can make a decision about whether or not your application complies with Microsoft's rules. (If Microsoft's own attornies won't give you advice, I certainly won't.) If you decide that it does not comply, then you have the option of using a third-party ODBC driver -- surprisingly, Microsoft will actually help put you in touch with them -- or of obtaining a redistribution license from Microsoft. I do not know what costs are involved, if any, and I have been unable to locate any third-party Access drivers by searching the web. (I did not ask Microsoft those questions.)

    Getting back to the actual Microsoft license, when you are reading it I would suggest that you and your attorney keep these things in mind:

    1) Microsoft Windows 95 and 98 probably qualify as "any commercially-released Microsoft product", don't they?

    2) Did you use Microsoft Visual Studio to create a significant component of your application, such as a resource file? I would like to suggest that your use of the word "primary" (in your original question) may be key to the correct interpretation of the license. (Visual Studio is specifically mentioned in the license.)

    I hope you don't get the impression that I am encouraging you to bend the license agreement's language. Not at all. But when you are reading a legal document that was prepared by a team of lawyers who work for the world's largest and most legally-sophisticated software company, I believe it is safe to say that the license means exactly what it says.

    Finally, I would like to commend you for being concerned about this issue. Not every software developer is. A surprising number of developers simply distribute the MDAC package without concern for the terms of the Microsoft license, a practice which I cannot recommend.

    -- Eric


    ------------------
    Perfect Sync: Perfect Sync Development Tools
    Email: mailto:[email protected][email protected]</A>



    [This message has been edited by Eric Pearson (edited February 19, 2000).]
    "Not my circus, not my monkeys."

    Comment


    • #3
      Adding potientially important new information...

      I just found out that the Windows 98 Installation CD does include the ODBCJT32.DLL file, which is the core file for the Microsoft Access ODBC driver. So Windows 98 may include the Access drivers after all, just like NT and 2000. I have to leave the office now, but as soon as I can I will research this further and post a new message.


      ------------------
      Perfect Sync: Perfect Sync Development Tools
      Email: mailto:[email protected][email protected]</A>



      [This message has been edited by Eric Pearson (edited February 19, 2000).]
      "Not my circus, not my monkeys."

      Comment


      • #4
        Just had a look through my Windows 95c CD and found a ODBCJT32.DLL in CDROM:\win95\win95_13.cab. Does this mean I can distribute programs developed by me with Access ODBC drivers for any of Micro$oft's 32-bit operating systems with impunity?
        If you try to make something idiot-proof, someone will invent a better idiot.

        Comment


        • #5
          Matthew --

          > Just had a look through my Windows 95c CD and found a ODBCJT32.DLL

          That's great news!

          > Does this mean I can distribute programs developed by
          > me with Access ODBC drivers for any of Micro$oft's
          > 32-bit operating systems with impunity?

          Any version of Win32? I'll look at an old Win95a CD tommorow, to see if it's on there too. Even if it is, I'm still investigating the process of installing the drivers. There's apparently more to it than just copying that DLL to the system directory. According to MSDN, more than one DLL is involved. I suspect that they're all there -- otherwise, ODBCJT32.DLL would not work and there would be no point of putting it on the CD, right? -- but I'm still not sure. With Microsoft, you never know until you know.

          The problem I have right now is that all of my 95 and 98 test machines have already had the MDAC package installed on them, so to test this properly I need to re-install Windows on a couple of machines. If anybody out there has a 95 or 98 machine where ODBC drivers have never been installed, and they'd be willing to experiment with this, it would help a lot!

          I'll keep this thread up-to-date as I find out more...

          -- Eric

          ------------------
          Perfect Sync: Perfect Sync Development Tools
          Email: mailto:[email protected][email protected]</A>



          [This message has been edited by Eric Pearson (edited February 20, 2000).]
          "Not my circus, not my monkeys."

          Comment


          • #6
            Just checked a Windows 95b CD and it also has an ODBCJT32.DLL file in the same location as on the Windows 95c CD.
            If you try to make something idiot-proof, someone will invent a better idiot.

            Comment


            • #7
              Matthew --

              I don't have a 95c CD, but when I look at (what I believe to be) a 95b CD I'm not seeing ODBCJT32.DLL in the win95_13.cab file. What are the date stamps on the files in the root of that CD? What is the exact size (and date) of the _13 file?

              As an update... The installation of the Access ODBC drivers from the Windows 98 CD is looking very promising, but my experiments have been put on hold by Windows 2000. Installing 2000 on my multi-boot test machine has trashed everything, for the moment. We've even gone back to ground zero and tried to perform a straight 2000 install without the mutli-boot manager, and nothing wants to work. Please be patient for a while longer...

              -- Eric

              ------------------
              Perfect Sync: Perfect Sync Development Tools
              Email: mailto:[email protected][email protected]</A>



              [This message has been edited by Eric Pearson (edited February 23, 2000).]
              "Not my circus, not my monkeys."

              Comment


              • #8
                Ok, I've finished my research about installing the Microsoft Access '97 ODBC drivers from a Windows 98 CD.

                It is surprisingly easy. All you have to do is use the CD's "Browse This CD" menu (or Explorer) to run \ADD-ONS\PWS\SETUP.EXE. By performing a "Custom" installation of PWS (the Personal Web Server) you can specify the installation of the MDAC 1.5d package, which includes version 3.51.102900 of the Access '97 ODBC driver (dated 10/29/97), plus the ODBC Control Panel applet, the ODBCINST.HLP Help File, the Jet Engine Help File, and other related items. A SQL Server ODBC driver was also installed, but it was not marked with a version number. It did not appear that any actual PWS-specific items were installed. No desktop icons were added, and only the MDAC 1.5 entry was added to the Start menu.

                We were also successful in creating a usable Access '97 ODBC driver setup by manually extracting the contents of the ODBC.CAB and BRAZOS.CAB cabinet files from the CD into \Windows\System, and creating three registry entries, but we are not certain that it was 100.00% functional. The basic SQL Tools functions seemed to work perfectly, but we did not perform extensive testing. For that reason I hesitate to post the procedure here, but I have written a preliminary checklist and I'll be glad to share it (via email) with anybody who wants to experiment with this process. That would theoretically make it possible for a PB/DLL or PB/CC program to install the files and create the registry entries programmatically, without the use of the PWS installation program. The only thing your user would have to do is "Please insert your Windows 98 Installation CD so that the necessary database driver files can be copied".

                One caveat: Windows 98 includes a relatively early version of the Access ODBC driver. We are not aware of any specific bugs or missing features, but more recent drivers have been released by Microsoft and they rarely do that for no reason. It is also possible (probable?) that Windows 98 SE contains a different version of the Access driver.

                MDAC 1.5d was released in March of '98, and it was superceded by MDAC 2.0 in July of '98. Various versions of MDAC have been distributed with Windows 98, Windows NT, Windows 2000, Visual Studio, Internet Explorer (versions 4 and 5), Microsoft Office, Microsoft Back Office, and various other Microsoft products. The current version is MDAC 2.1.1.3711.11. (Can you believe that version number?) MDAC 2.1 includes version 4.00.3711.08 of the Access driver, dated 2/5/99, so it is really only 15 months newer than the MDAC 1.5d version.

                We have not been able to locate any ODBC files on any of the Windows 95 disks that we have avaiable to us. But MDAC was first released by Microsoft in 1996, so it is possible that some later Windows 95 CDs do include the necessary files.

                The bottom line of all of this is that the redistribution of Microsoft Access ODBC drivers appears to be a non-issue with Windows 98, NT4, and 2000. You apparently only need to be concerned with this issue if your software will be run on Windows 95 systems. A reasonable alternative for some developers might be to require "Windows 98 or better" for the installation of their software. Or simply provide special download instructions for Windows 95 installations.

                -- Eric

                ------------------
                Perfect Sync: Perfect Sync Development Tools
                Email: mailto:[email protected][email protected]</A>



                [This message has been edited by Eric Pearson (edited February 24, 2000).]
                "Not my circus, not my monkeys."

                Comment


                • #9
                  More information...

                  I just repeated the Windows '98 PWS "custom" installation process, and I was able to install the SQL Server ODBC driver version 3.50.0305 and the Oracle ODBC driver version 2.83.728303.

                  I also confirmed that the process installed the ODBC "Cursor Library", which is a key component for full ODBC functionality.

                  It is not pertinent to the use of SQL Tools, but certain ADO components could also be installed.

                  -- Eric

                  ------------------
                  Perfect Sync: Perfect Sync Development Tools
                  Email: mailto:[email protected][email protected]</A>

                  "Not my circus, not my monkeys."

                  Comment


                  • #10
                    I don't have a 95c CD, but when I look at (what I believe to be) a 95b CD I'm not seeing ODBCJT32.DLL in the win95_13.cab file. What are the date stamps on the files in the root of that CD? What is the exact size (and date) of the _13 file?
                    The win95_13.cab file is dated 24/Aug/1996 11:11 and is 1,676KB. The files in the root folder have the same date/time stamp. Just in case you are wondering, the CD's volume label is WINDOWS95B so I am definitely looking at a Windows 95b CD.

                    ------------------
                    If you try to make something idiot-proof, someone will invent a better idiot.

                    Comment


                    • #11
                      Apparently our one-and-only Windows 95B disk is missing in action, and we've never owned a copy of C, so hopefully you can help me out...

                      1) Does the 95B disk include any optionally-installable software (other than Hover ), the way 98 includes PWS? It would probably appear as a SETUP.EXE program in a subdirectory of the CD. If so, does the installation program allow the installation of ODBC drivers or MDAC files?

                      2) What .CAB files are included on the 95B CD? The 95A CD includes MINI, PRECOPY1 and 2, and WIN95_02 through _17, all in the \WIN95 directory.

                      3) Do the following files appear on the CD, either as files or as part of a CAB file in a subdirectory?

                      Code:
                          odbcad32.exe
                          odbccp32.cpl
                          odbcjt32.dll
                          odbcji32.dll
                          odbctl32.dll
                          odbc32gt.dll
                          odbc16gt.dll
                          odbccr32.dll
                          odbccu32.dll
                          odbc32.dll
                          odbccp32.dll1
                          odbcint.dll1
                          ds16gt.dll
                          ds32gt.dll
                          mtxdm.dll
                          odbctrac.dll
                      
                          MDAC*.*
                      -- Eric


                      ------------------
                      Perfect Sync: Perfect Sync Development Tools
                      Email: mailto:[email protected][email protected]</A>



                      [This message has been edited by Eric Pearson (edited February 28, 2000).]
                      "Not my circus, not my monkeys."

                      Comment


                      • #12
                        It seems MicroSoft has changed their redistribution agreement and as I would understand it, we now can distribute mdac_tp.exe even though the primary development tool was not a MicroSoft product. See http://www.microsoft.com/data/eulamdac25.htm

                        ------------------
                        Brent Boshart

                        Comment


                        • #13
                          That wouldn't happen to have anything to do with Micro$oft's current tribulations with the DOJ, would it?
                          If you try to make something idiot-proof, someone will invent a better idiot.

                          Comment


                          • #14

                            I needed to distribute DCOM98.EXE with a
                            product one, I email microsoft, they
                            emailed me back permission!

                            Simple solution!

                            Mike


                            ------------------
                            mwm
                            mwm

                            Comment

                            Working...
                            X