mdac.gif

最近几天被MDAC折腾的实在喘不过气来。MDAC相关的所有软件都无法使用,打击啊!包括:腾讯旗下的新版QQ和TM,出现的那个0x00000005错误;sonystage出现的数据库错误;还有财智6出现的无法打开账簿;dx挂载的驱动程序自动拖挂,造成无法启用dx加速等等问题。这个MDAC简直是恶心到极点。日常生活都被打乱了。经过无数次的测试,之后总结出了解决方案。供大家参考,如果你的QQ2009preview也无法登陆不妨试一下。

本人系统是win2003 EE SP2
其实使用sfc /scannow是最好的办法,但是无奈,不知道为何我的RPC服务被拒绝而无法使用sfc=。=退而求其次,实行曲线救国的路了。第一步,重装MDAC
Win2003系统内建了MDAC2.8,所以我选择修复性安装。方法如下,

点击 开始->我的计算机->工具菜单->文件夹->选项
点击 查看
在高级设置下,点击 显示隐藏档和档夹
去掉隐藏已知文件的扩展名选项
点击应用 点击确认
在WINDOWS的INF目录下,右键点击MDAC.INF,选择 安装
当提示你插入系统光盘的时候,选择如下方法 插入光盘到光驱
点击浏览按钮
在文件名称输入光驱盘符,包含 I386目录
点击打开
或者直接输入 %systemroot%\windows\servicepackfiles\i386 点击打开

然后重启,看行不行。我重启后,发现问题依旧,使用COMPONENT CHECKER检查下版本,发现是SP2的版本。结果没有问题。但是安装完毕后弹出一个odbcconf的装载错误信息"INSTALLDRVRMGR: Unable to install driver manager"。查看了一下log文件,居然修改注册表拒绝。遂检查注册表权限,发现HKEY_CLASSES_ROOT居然连管理员都没有控制权(我使用的是管理帐号登录),遂添加自己的管理权限并取得所有权。嘿,再次重装MDAC成功了而且并没有错误提示。

第二步,替换msdart.dll
QQ依然无法打开,财智6也无法打开"定位输入点XXXX 在msdart.dll 上错误",遂爬文得到这个文章。替换了文件,财智6可以打开界面了,但依旧无法打开账簿,QQ依然无法登陆。这个要注意msdart.dll的大小应该是104K的才对,我系统原来的是124k的,运行不了。网上下载的MDAC2.8包(应该是RTM版的)msdart.dll文件是140K,这个也不能用,一定要104k的才行。

第三步,重新注册所有dll
查看了系统事件查看器,发现了几处错误事件而且都是下面这种

Windows 无法加载可扩展计数器 DLL msppcntr,数据段中的第一个 DWORD 是 Windows 错误码。

遂再爬文,爬到了这个,才恍然大悟,装完MDAC忘记重新注册dll了。故重新注册了一遍,嘿嘿,打开QQ,TM都能上了。财智6也能打开账本了。sonistage也能打开曲目库了。嘿,算是成功了吧~

经过这么多的磨练,终于算解决了大部分的困扰,希望还在水深火热中的你,在犹豫是否重装前也尝试下我的方法。很多时候,重装不是解决问题的好方法,学着在解题中成长也是一种乐趣XD