0800 Driver Install Checking - microsoft/CSS_SQL_Networking_Tools GitHub Wiki

0800 Driver Install Checking

Note: Driver installation issues are generally the responsibility of the vendor. However, there are some things that you can check on Windows.

Drivers are physically represented on the hard drive as DLLs. Applications need to know how to find the appropriate DLL and load it into the process space. Both ODBC and OLE DB use the registry to locate the Driver or Provider to load into memory.

In the case of ODBC, it is loaded via the ODBC Driver Manager. This is a shim DLL that provides two functions:

  • Loading the Driver DLL into memory via the LoadLibrary Win32 API.
  • Providing a generic tracing facility. Once the driver has loaded into memory, the ODBC Driver Manager proxies the calls between the application and the driver. This proxy functionality is what allows for the tracing functionality. For performance and other reasons, this trace is not recommended.

In the case of OLE DB, it is loaded via COM APIs, such as CoCreateInstance (C++) or CreateObject (VBA/VBScript).

For .NET Providers, the DLLs are loaded from the Global Assembly Cache (typical), or from the application directory, according to .NET search rules. The registry is not used.

There are also .NET Providers for ODBC Drivers and OLE DB Providers, and once the .NET Provider DLLs are loaded, they follow the ODBC or OLE DB rules for loading the actual driver or Provider DLLs.

PROCMON, from www.sysinternals.com, can be used to trace the install or load and may indicate if any DLL or registry keys are missing or have permissions issues. Note: When tracing 32-bit applications, references to c:\windows\system32 are automatically redirected to c:\windows\syswow64. Similar for registry access.

3rd-party drivers manufacturers may also install a test application, e.g. SQL*PLUS for Oracle. If that cannot connect to the server, then the driver should be reinstalled and/or the vendor should be engaged.

Installation Support for Various Drivers and Providers

  • 3rd-party drivers and Providers are ultimately supported by the vendor.
  • For drivers and Providers that come pre-installed with Windows: SQL Server, FoxPro, Microsoft ODBC for Oracle, and Access (and its IISAM drivers, Text, Paradox, dBase, Excel, etc.), generally you must repair or reinstall Windows. The Microsoft Windows support team can assist. These drivers should not be used for new application development.
  • For the ACE Provider and the ODBC drivers that derive from it, such as the Excel ODBC driver, the Access or Office teams would support this.
  • For the Microsoft DB/2 drivers and Providers, the Host Integration Services team supports this.
  • For the Active Directory Provider, the Active Directory team supports this.
  • For the Exchange Provider, the Exchange team supports this.
  • For the installable Microsoft SQL Server drivers and Providers, the SQL Networking team supports them.

For sample connection strings for testing, visit www.connectionstrings.com. Note: This is a non-Microsoft site.