Results 1 to 11 of 11

Thread: ADO, MDAC & Jet distribution

  1. #1

    Thread Starter
    Fanatic Member
    Join Date
    Jan 2005
    Location
    In front of this pc.
    Posts
    580

    ADO, MDAC & Jet distribution

    In researching on the MS site it seems to me that installing MDAC2.8, Jet4 (using the correct MS installer for the OS) and Dcom (for 9x machines) should be all that is needed. Is that correct? There will be no need to verify that pevious versions of MDAC or Jet have been installed?

  2. #2
    Frenzied Member David.Poundall's Avatar
    Join Date
    Sep 2002
    Location
    Robin Hood Land
    Posts
    1,457

    Re: ADO, MDAC & Jet distribution

    I do know that the Jet installer will only do the upgrade if it needs to, and there is a /quiet command line switch available. What you are putting together sounds very much like the OSUpdater that Randem has on his web site.
    David

    Learn the Rules so that you know how to break them properly.

    Printing dll dBTools MZTools Winsock API WinsockVB More Winsock SGrid2 MSChart Mail2Web

    If you have found this thread useful then read this

  3. #3

    Thread Starter
    Fanatic Member
    Join Date
    Jan 2005
    Location
    In front of this pc.
    Posts
    580

    Re: ADO, MDAC & Jet distribution

    Well, I looked at the OSUpdater on Randem's site. The thing "we" aren't crazy about with it is it's size. A 32MB download (for the auto updater - around 20 for OS specific), for folks on a dial-up, is a little more than we want to force on them although it could be an optional download.

    What I'm wanting to do is distribute the main setup program and have it determine the OS and then download the minimum needed update for this app to function properly - i.e., XP users would get the Jet update only while 98 users would get MDAC, DCOM, and Jet.

  4. #4
    Frenzied Member David.Poundall's Avatar
    Join Date
    Sep 2002
    Location
    Robin Hood Land
    Posts
    1,457

    Re: ADO, MDAC & Jet distribution

    That's what I found as well. In the end I stuck with XP and just installed Jet.

    Hmmm, the only way you could do what you want would be to run an installer that checked the OS and launched an EXE at the end that went to fetch another installer. On dial up your user would be there for ages waiting to do MDAC and DCOM - not good.

    Alternatively, do an installer that knows what OS it should install to. If the user tries to install the wrong one - it won't do the install. It would mean that you had different installers for each OS on your web site, but then then XP users would not have to download DCOM (or MDAC if you keep to revision 2.7 as that ships with XP).

    .
    David

    Learn the Rules so that you know how to break them properly.

    Printing dll dBTools MZTools Winsock API WinsockVB More Winsock SGrid2 MSChart Mail2Web

    If you have found this thread useful then read this

  5. #5

    Thread Starter
    Fanatic Member
    Join Date
    Jan 2005
    Location
    In front of this pc.
    Posts
    580

    Re: ADO, MDAC & Jet distribution

    My installer currently launches a vb app now which communicates with the server as part of the installation process (installation is aborted if the user doesn't have an account). I think I'm going to go with having that app check MDAC version, the existance of DCOM (on 9x machines) and the Jet version and only download what's required.

    Hopefully most pcs will be up-to-date and not require the additional download but I don't see that the user having to wait for a secondary 8mb download would be any more or a problem for them than if the additional 8mb was included in the original download - since I'm a lazy bird it will definately be easier on me not to have 5 seperate installers to maintain plus folks with up-to-date pc will benefit from smaller downloads, right?

  6. #6
    Frenzied Member David.Poundall's Avatar
    Join Date
    Sep 2002
    Location
    Robin Hood Land
    Posts
    1,457

    Re: ADO, MDAC & Jet distribution

    Its the same quandry I had just the other week. I agree with you that the more up to date PC's will not need such a big install.

    So you are going to do an install THEN check PC versions of MDAC, DCOM and Jet, then go get another install. Phew! If I was sitting through that I wouldn't be thinking nice thoughts if I had W98, ME or 2000 and half way through the install it looked as if I had time to make and drink not one but two coffees (thinking Modem download here) when I thought I would be up and running within a couple of minutes.

    Now it wouldn't be so bad if I knew what size download I was in for (20 Meg or 8 Meg) at the point of download.

    It's not that hard supporting different downloads, it will certainly be cleaner as far as the user is concerned. Are you using InnoSetup?
    David

    Learn the Rules so that you know how to break them properly.

    Printing dll dBTools MZTools Winsock API WinsockVB More Winsock SGrid2 MSChart Mail2Web

    If you have found this thread useful then read this

  7. #7

    Thread Starter
    Fanatic Member
    Join Date
    Jan 2005
    Location
    In front of this pc.
    Posts
    580

    Re: ADO, MDAC & Jet distribution

    Jeez...did it TAKE me long enough to get back?

    Ya, I'm using Inno setup. I agree that it isn't that difficult to maintain different setups but I'm concerned about dial-up users downloading an unnecessarily large setup also - i.e. I create a 98 setup which includes Dcom, Mdac and Jet. That's roughly 10 megs and I havn't even started to include my program yet, which is about 5 MB.

    Currently, as part of the installation process, my server is contact and the users account is verified prior to the installation completing. I could also check that Dcom is installed an enabled and that Mdac & Jet are installed and only download any needed updates while providing the user with download size and progress bar...

    Also, installing Dcom presents some timing problems of it's own but thankfully someone provided an Inno setup script outlining how to resolve these problems

  8. #8
    Frenzied Member David.Poundall's Avatar
    Join Date
    Sep 2002
    Location
    Robin Hood Land
    Posts
    1,457

    Re: ADO, MDAC & Jet distribution

    I would be very intersted in learning how you determine in advance if DCOM, MDAC and Jet are required by the 98 system. Also, if at all possible could you post the inno script? PM me if you want to keep it private.
    David

    Learn the Rules so that you know how to break them properly.

    Printing dll dBTools MZTools Winsock API WinsockVB More Winsock SGrid2 MSChart Mail2Web

    If you have found this thread useful then read this

  9. #9
    Frenzied Member David.Poundall's Avatar
    Join Date
    Sep 2002
    Location
    Robin Hood Land
    Posts
    1,457

    Re: ADO, MDAC & Jet distribution

    Quote Originally Posted by anotherVBnewbie
    XP users would get the Jet update only while 98 users would get MDAC, DCOM, and Jet.
    Doesn't Jet come with the XP install as standard anyway ??
    David

    Learn the Rules so that you know how to break them properly.

    Printing dll dBTools MZTools Winsock API WinsockVB More Winsock SGrid2 MSChart Mail2Web

    If you have found this thread useful then read this

  10. #10
    Banned dglienna's Avatar
    Join Date
    Jun 2004
    Location
    Center of it all
    Posts
    17,901

    Re: ADO, MDAC & Jet distribution

    I think JET was cut out. It's a separate download now for XP.

    There are versions of the OS Updater for each OS. The one for ALL is 32m.

  11. #11

    Thread Starter
    Fanatic Member
    Join Date
    Jan 2005
    Location
    In front of this pc.
    Posts
    580

    Re: ADO, MDAC & Jet distribution

    Good goobeldy goo! Folks have been responding to this thread for weeks since I last monitored it! (Ok, I ain't been on the board in a week or so but still....).

    To answer mr Poundall's question about determing if Dcom is present..much as I'd like to take credit for this I found it in a MS demo project so guess I can share

    VB Code:
    1. 'The following APIs are used to determine if DCOM is present on
    2. 'The client
    3.  
    4. Public Declare Function GetProcAddress Lib "kernel32" ( _
    5.     ByVal hModule As Long, ByVal lpProcName As String) As Long
    6.  
    7. Public Declare Function GetModuleHandle Lib "kernel32" _
    8.     Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
    9.  
    10. Public Declare Function RegOpenKeyEx Lib "advapi32.dll" _
    11.     Alias "RegOpenKeyExA" (ByVal hKey As Long, _
    12.     ByVal lpSubKey As String, ByVal ulOptions As Long, _
    13.     ByVal samDesired As Long, phkResult As Long) As Long
    14.  
    15. Public Declare Function RegQueryValueEx Lib "advapi32.dll" _
    16.     Alias "RegQueryValueExA" (ByVal hKey As Long, _
    17.     ByVal lpValueName As String, ByVal lpReserved As Long, _
    18.     lpType As Long, lpData As Any, lpcbData As Long) As Long
    19.  
    20. Public Declare Function RegCloseKey Lib "advapi32.dll" ( _
    21.     ByVal hKey As Long) As Long
    22.  
    23. Public Const ERROR_SUCCESS = 0
    24. Public Const HKEY_CURRENT_CONFIG = &H80000005
    25. Public Const HKEY_LOCAL_MACHINE = &H80000002
    26. Public Const STANDARD_RIGHTS_ALL = &H1F0000
    27. Public Const KEY_QUERY_VALUE = &H1
    28. Public Const KEY_SET_VALUE = &H2
    29. Public Const KEY_CREATE_SUB_KEY = &H4
    30. Public Const KEY_ENUMERATE_SUB_KEYS = &H8
    31. Public Const KEY_NOTIFY = &H10
    32. Public Const KEY_CREATE_LINK = &H20
    33. Public Const SYNCHRONIZE = &H100000
    34. Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or _
    35.     KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or _
    36.     KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
    37.  
    38. Private Function DCOMOK() As Boolean
    39.     'Determine if DCOM (Distributed COM) can be used. It can if it
    40.     'is installed and is enabled on the current machine.
    41.     'Dim bOK As Boolean
    42.     Dim bPresent As Boolean
    43.     Dim bEnabled As Boolean
    44.     Dim hKey As Long
    45.     Dim lpType As Long
    46.     Dim lpData
    47.     Dim lResult As Long
    48.     Dim lpcbData As Long
    49.  
    50.     lResult = GetProcAddress(GetModuleHandle("OLE32"), "CoInitializeEx")
    51.     If lResult <> 0 Then
    52.         bPresent = True
    53.     Else
    54.         bPresent = False
    55.     End If
    56.  
    57.     lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Ole", 0, _
    58.         KEY_ALL_ACCESS, hKey)
    59.     lpcbData = Len("EnableDCOM")    '10
    60.  
    61.     If lResult = ERROR_SUCCESS Then
    62.         lResult = RegQueryValueEx(ByVal hKey, "EnableDCOM", 0, ByVal lpType, lpData, lpcbData)
    63.     End If
    64.  
    65.     If lResult = ERROR_SUCCESS Then
    66.         bEnabled = True
    67.         RegCloseKey (hKey)
    68.     Else
    69.         bEnabled = False
    70.     End If
    71.  
    72.     If bEnabled And bPresent Then
    73.         DCOMOK = True
    74.     Else
    75.         DCOMOK = False
    76.     End If
    77. End Function

    In order to determine the current version of Mdac MS suggest that you use a utility the provide (can't remember the name of it right now) but you can also just read the registry key:
    HKLM\Software\Microsoft\DataAccess\FullInstallVer


    Now on to the Jet stuff...as far as I've been able to determine Jet will *probably* be present on XP machines but it's possible that an older version is in place so if you depend on 4.0 you should probably check for it being installed. I havn't found any good documentation on doing this but I'm pretty sure that a registry scan will do the trick - just check for the existance of the HKLM\Software\Microsoft\Jet\Jet4.0 key. Hopefully nothing will create that key other than the installation of 4.0 (If anyone has other info here I'd appreciate hearing it!)

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