View Full Version : Jet Database Engine Registry Entries

12-04-2002, 01:57 PM
Since my installation packages will be on my web site I've decided not to use the MDAC and Jet 4.0 MSMs as they increase the size of the install substantially.

Instead I intend to add a series of VBScript Custom Actions to check the MDAC and Jet versions on the target system and run the MDAC_Type.exe and/or the various Jet Setup exes based on the target system's operating system and installed MDAC and Jet versions. I prefer doing this by looking in the Registry rather than doing file searches and extracting the version information from the found files.

My problem is that I can't find a Registry entry, and I've searched the Registry to the best of my ability, that tells me what version of Jet is installed. Any ideas where in the Registry this is?



12-04-2002, 03:25 PM
The MDAC module determines the installed MDAC version by checking the registry but determines Jet by looking up the file version of msjet40.dll.

I personally think you might as well use the merge modules. My reasons are:
1. You will be saving only about 300K at max. The Jet redists are 16MB and the MDAC redists are around 6MB.
2. Both modules won't install the MDAC or Jet if the same or newer version is found
3. Both merge modules check all minimum system requirements

As for a registry key for Jet I couldn't find one either. I was hoping there would be a TypeLib or CLSID that would map to msjet40.dll but there wasn't :(.

12-04-2002, 04:48 PM

The following will illustrate the reason I'm looking at using VBScript instead of the merge modules. It all relates to download times.

If I use the VBScript approach my Setup.exe is 2.3MB including the MSI engines. This will be located on my website. As nearly as I can calculate, running or downloading this from the website will take less than 1 minute with a broadband connection and approximately 8 to 10 minutes with a dialup connection. MDAC_Typ.exe and the various Jet Setup EXEs will also be on the website but will only have to run if the correct versions of MDAC and Jet 4.0 aren't already installed on the target machine.

If I include the merge modules for MDAC 2.7 and Jet 4.0, which forces the inclusion of the DCOM95 merge module and MDAC 2.6 merge module, the Setup.exe grows to 31.3MB. This will increase the run or download times to approximately 13 minutes for a broadband connection and 108 to 130 minutes for a dialup connection.

My target customer is a home user and I'm trying to do everything I can to minimize the amount of time required for them to download the evaluation version of my products. I'm concerned that they won't download if the times are too long.

I'm open to and would certainly appreciate any insight you have into a better way to accomplish my objective. I really like the approach you take with the .NET Framework redistributable where you have the Download From the Web option.



12-06-2002, 12:38 PM
Is your VBScript going to handle the download and install of MDAC and Jet? If so, at least for MDAC you can have can have a simple setup that just has the MDAC module. This setup will then do all the minimum version checking and install MDAC. Only consideration with this approach would be the overhead for the msi engines. This approach won't work or Jet though, since different operating systems need different redists which means everyone will be downloading 16MB regardless of what version of Windows they have.

12-06-2002, 03:22 PM
Hi Chandima,

I tried to build an MSI to hold MDAC27.MSM as I thought that would be the best approach, but couldn't figure out how to build one with no dialogs. If you can help me on this I would certainly appreciate it.

I have a VBScript using the Run method for the various Jet40 setups and it works well as long as it is the only time I use the Run method. For some reason, I can't seem to make the script wait for Run method's program execution to complete. I also can't get the setup to wait even though I've set the scripts Wait For Action to Yes. To me this implies that the Run method is returning a value that tells the setup to continue. I'll attach a sample script file that I've renamed so I can upload it.



12-09-2002, 01:58 PM
For MDAC 27 just build the setup with default settings (might want to change the product name). Also, if you don't want this to show up as a separate entry in Add/Remove Programs, go to the General Information View and set the "Use Add/Remove Programs" property to No. When you run this setup, run it with the following command line:

Setup.exe /s /v/qn

This will perform a silent install. Using the following will give you a simple progressbar:

Setup.exe /s /v/qb

As for the the VBScript, try putting everything in a function and have the function return a 0 (having the funtion return 1602 will make the setup exit cgracefully). This way (I think) the installer will be monitoring the functions return value instead of any random return value.