FAQ About Windows DAC/MDAC

The following are some frequently asked questions about the data access technologies included in Windows Data Access Components (Windows DAC) and Microsoft Data Access Components (MDAC).

What Is the Difference Between Windows DAC and MDAC?

Windows Data Access Components (Windows DAC) 6.0 is the version of the data access technologies—ADO, OLE DB, and ODBC—included in the Windows Vista operating system. Microsoft Data Access Components (MDAC) includes earlier versions of the same technologies, and version 2.8 was included in Windows XP and Windows Server 2003. There is also a redistributable version, MDAC 2.8 SP1, which should only be used with Windows 2000. Windows DAC includes some changes to work with Windows Vista, but is almost entirely functionally equivalent to MDAC 2.8.

What version of Windows DAC or MDAC is current for my operating system?

The followin Knowledge base article contains information about WDAC and MDAC versions for supported Microsoft operating systems: Microsoft Data Access Components (MDAC) release history.

Can MDAC be removed? It is causing problems with one of my applications.

MDAC can be removed in some instances where it is not installed as part of the Windows operating system. For example, MDAC 2.7 cannot be removed from systems that are running Windows XP, because it is a Windows component and therefore all its assemblies are system-protected files. The same is true for MDAC 2.8 when it runs under Windows Server 2003.

In most cases, you should use the Microsoft Component Checker (ComCheck) utility, which is available at no charge and can be downloaded from the Microsoft Web site.

For more information about how to use ComCheck to remove or repair MDAC installations, refer to the following Microsoft Knowledge Base article:

KB Article ID

Title

307255

INFO: Component Checker: Diagnose Problems and Reconfigure MDAC Installations

Why am I having intermittent problems with my C++ application that uses ADO components when it runs under 64-bit Windows?

When you compile C++ applications that import msado15.dll, make sure that the 64-bit version of msado15.dll is referenced and not the 32-bit version. This detail might not be immediately obvious for the following reasons:

  • Many developers must build their 64-bit applications on computers that run under 32-bit Windows operating systems. These computers typically do not have the 64-bit version of msado15.dll installed.

  • When you build a 64-bit application that is referencing the 32-bit version of msado15.dll, the Visual C++ compiler does not return any compile or linking errors. In fact, frequently, your application might appear to work. Occasionally, your 64-bit application might encounter misaligned data. This causes memory access violations when certain ADO properties are accessed.

To avoid this issue, you can copy the 64-bit version of msado15.dll from the Windows installation media to any 32-bit computers that you use to develop, build, or test your application and make sure that you use that version when you compile your 64-bit application.

I get RDS errors after upgrading from Windows 2000 to Windows XP or Windows Server 2003 and it appears MSADC is no longer available on my IIS server. Why is that?

When Internet Information Services (IIS) is installed under Windows 2000, the default is to install data access components and create the MSADC virtual directory needed to support their use at the Web server after setup. Together, this configuration provides the support your Active Server Pages (ASP) applications might need to use Remote Data Services (RDS) and work as intended. After upgrading to either Windows XP or Windows Server 2003, however, the MSADC virtual directory is removed from IIS. This behavior is by design and is intended to provide added security where data access components are not available for use unless you intend to use them on your server running IIS.

After upgrade, if you try to access RDS, you might receive the following error message:

Internet Server Error
Runtime error: 8447 

To resolve this problem, create a new MSADC virtual directory on the server running IIS. To do this, follow these steps:

  1. Click Start, click Programs, click Administrative Tools, and then click Internet Information Services.

  2. Expand the (local computer) and Web Sites nodes.

  3. Right-click the Default Web Site node, point to New, and then click Virtual Directory. When the Virtual Directory Creation Wizard appears, click Next.

  4. In the Virtual Directory Alias dialog box, type MSADC, and then click Next.

  5. On the Web Site Content Directory page, click Browse to locate the following path, and then click Next:

    C:\Program Files\Common Files\System\msadc
    
  6. On the Access Permissions page, click to select the Execute (for example, as ISAPI applications or CGI) check box.

    Note

    By default, the Read and Run scripts such as ASP check boxes are selected.

  7. Click Next, and then click Finish to complete the wizard.

After you follow these steps, you might not receive the RDS error previously described.

See Also

Concepts

Troubleshooting Windows DAC/MDAC