Windows Server 2003 + SQL Server 2000 中使用企业管理器选择表返回所有行出现错误

Windows 2003 + SQL Server 2000 中使用企业管理器选择表返回所有行出现错误,提示‘查询文件已经损坏或未注册,请先注册或者重新安装’,但是查询管理器可以正常使用。使用ADO的delphi程序都运行出错,提示需要MDAC 2.1以上版本。

判断是MDAC出错了,重装MDAC 2.8 ,失败!卸载SQL server 2000 后重装,安装MICROSOFT SQL SERVER 2000 的 SERVICE PACK 4, 没解决。

难道是版本低,想到Windows Server 2003 SP1 有 MDAC 2.8 SP2, 重装Windows Server 2003 SP1后还是同样问题。

MDAC是什么?
Microsoft Data Access Components (MDAC) 是一个组件集合,用于在 Microsoft Windows 操作系统上提供数据库连接。MDAC 是一种常用的技术,大多数 Windows 系统上都可能有。

默认情况下,MDAC 作为一个组成部分包括在 Windows XP、Windows 2000 和 Windows Millennium Edition (Me) 中。许多其他产品和技术中也包含了或安装了 MDAC。例如,Microsoft Windows NT 4.0 Option Pack 和 Microsoft SQL Server 2000 中都有 MDAC;而且,即使未安装 MDAC 本身,Microsoft Internet Explorer 中也包含某些 MDAC 组件。此外,MDAC 还作为一种独立的技术来提供。如要下载 MDAC,请访问下面的 Microsoft 网站:
http://msdn2.microsoft.com/en-us/data/aa937695.aspx



MDAC 属于系统组件,不能卸载,只能由更高版本覆盖升级,如单独的MDAC安装包或者操作系统的SERVICE PACK 。

google一下,发现比较接近修复MDAC的文章是这样:
在安装了XP sp2或Windows 2003的机器上修复MDAC的方法如下:.在“我的电脑”中找到Windows系统目录下INF文件夹中的MDAC.INF文件,在其上点击右键,在弹出的菜单中选择“安装”。


但是右键安装INF文件拒绝访问,INF安装需要的程序出错,在控制面版-文件夹选项,找到INF,INF安装用于执行操作的应用程序:
%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1
改成这样使用绝对路径,在命令行输入:


不能换行:
C:\WINDOWS\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 C:\WINDOWS\inf\mdac.inf


插入Windows Server 2003安装光盘,安装结束后MDAC使用正常。