BUG: Component Checker Cannot Find Files in \Program Files\Common Files\System Folders (323032)



The information in this article applies to:

  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7

This article was previously published under Q323032
IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry

SYMPTOMS

If the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion registry key contains a registry value that is larger than 255 characters, the Microsoft Data Access Components (MDAC) Component Checker may not be able to find the files in the following folders:

\Program Files\Common Files\System\ADO
\Program Files\Common Files\System\MSADC
\Program Files\Common Files\System\Ole DB

When this occurs, the Component Checker reports that the files are not found.

For example, if the value of DevicePath in the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion registry key is set to a string that is larger than 255 characters, you receive an error message that the Component Checker could not find files under the Common Files folder.

CAUSE

The Component Checker uses a hard-coded buffer size of 256 when it opens the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion registry key. The Component Checker enumerates through the values under this registry key. If a registry value is larger than 255 characters, the Component Checker does not retrieve the CommonFilesDir value. The CommonFilesDir value is used to determine where the Common Files folder is located.

RESOLUTION

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

To work around this problem, follow these steps:
  1. Use Registry Editor to temporarily reduce the length of the offending registry value to less than 255 characters.
  2. Run the Component Checker.
  3. Change the registry value back to the original value.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

The Component Checker may report that the following files are missing:
  • Msdaps.dll
  • Oledb32r.dll
  • Oledb32.dll
  • Msdaosp.dll
  • Msdasqlr.dll
  • Msdasc.dll
  • Msdaenum.dll
  • Msdatt.dll
  • Msdasql.dll
  • Msdadc.dll
  • Msdaer.dll
  • Msadrh15.dll
  • Msador15.dll
  • Msado15.dll
  • Msader15.dll
  • Msdfmap.dll
  • Msadcfr.dll
  • Msdaprst.dll
  • Msaddsr.dll
  • Msadds.dll
  • Msadcs.dll
  • Msadcor.dll
  • Msadco.dll
  • Msadcer.dll
  • Msadcf.dll
  • Msadce.dll

Modification Type:MajorLast Reviewed:5/28/2003
Keywords:kbbug kbnofix KB323032