cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rguggisberg
Level 13

Detecting SQL Server 2005 Backward Compatibility

I'm trying to accomodate either SQL 2005 or SQl 2008 in a basic MSI install. For SQL 2008 I need to verify that 'Microsoft SQL Server 2005 Backward Compatibility' is installed (for DMO). How do I do that from a custom action? Is there a way to read the ARP list?
Thanks,
Ron
Labels (1)
0 Kudos
(6) Replies
ericpaul
Level 6

Hello Ron,

If 'Microsoft SQL Server 2005 Backward Compatibility' is installed, the following key should be present in the registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\328F2D26AAE0D6940B9F8A96FB5C5105


You might setup a system search for this registry entry and set some property you might use during setup.

Eric-Paul
0 Kudos
Mrunmayee
Level 5

If any of the following is missing, the Backward compatibility is not installed.

[HKEY_CLASSES_ROOT\Installer\Products\A9249BE1478A0FB469D1DBAABF61146A]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EB9429A-A874-4BF0-961D-BDAAFB1641A6}]

--------------------------------------------------------------------------
-Mrunmayee
0 Kudos
rguggisberg
Level 13

Thanks for the replies Eric-Paul and Mrunmayee. This will require a bit of care as the results do vary as you can see below. I was able to get the same results as Mrunmayee on Windows 7 x86, but the results were different on Windows 7 x64. I suspect that if I pick the right OS I will be able to get the results that Eric-Paul got.

Vista 32-Bit (SQL 2005)
HKEY_CLASSES_ROOT\Installer\Products\B86D16D0E5FD5364287C0B5CF3A085B1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\B86D16D0E5FD5364287C0B5CF3A085B1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0D61D68B-DF5E-4635-82C7-B0C53F0A581B}

Windows 7 32-Bit (SQL 2008)
HKEY_CLASSES_ROOT\Installer\Products\A9249BE1478A0FB469D1DBAABF61146A
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\A9249BE1478A0FB469D1DBAABF61146A
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EB9429A-A874-4BF0-961D-BDAAFB1641A6}

Windows 7 64-Bit (SQL 2008)
HKEY_CLASSES_ROOT\Installer\Products\7A8B9098BAEC2774FB9281294C6E06B3
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\7A8B9098BAEC2774FB9281294C6E06B3
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{8909B8A7-CEAB-4772-BF29-1892C4E6603B}

I will do further testing when I get a chance to restore other OS images.

Thanks,
Ron
0 Kudos
ericpaul
Level 6

Hello Ron, you're quite right, be carefull.

The OS that I based my findings on is Windows 7 (64-bit).
I have then first installed Visual Studio 2008 which in turn caused SQL Server 2005 Express to be on my machine.
I had to uninstall that to get the proper stuff installed for SQL Server 2005.
Consecutively, I installed SQL Server 2008.
0 Kudos
rguggisberg
Level 13

Seems like a more reliable way is to do a System Search and put a condition on SQLDMO.dll. That file is present if backward compatibility (DMO) is installed and absent if not.
Ron
0 Kudos
Mrunmayee
Level 5

To check whether Microsoft SQL Server 2005 Backward Compatibility component is installed or not, the better option i found is to check the version under registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\BC\CurrentVersion".
0 Kudos