admin 管理员组

文章数量: 887021

解决方案 VB编写的数据库程序在Win7 SP1编译无法在XP系统上使用的问题

可能出现的错误提示有:
1、430 Class does not support Automation or does not support expected interface
  运行时错误"430": 类不支持自动化或不支持所需的接口
2、Error 13 - Type mismatch

问题产生原环境:
操作系统:Windows 7 - (32 and 64 bit)  打了 SP1 补丁包
开发环境:Visual Basic 6 SP6 (VB6 SP6)  并引用 Microsoft ActiveX Data Objects 2.x Library(ADODB, msado27.tlb, msado28.tlb and msado15.dll)

在WIN7SP1环境下编译后,本机运行正常,在其他电脑(一般为XP系统)无法运行,产生以上错误提示。如果在XP下编译,则没有任何问题,在WIN7SP1也运行正常。

问题很明确,是补丁包引起的,最终查明是KB983246补丁,关于此补丁微软有很详细的说明:
http://support.microsoft/kb/2517589/zh-cn

因此解决办法就有:
1、所有客户端安装KB983246补丁!
2、卸载Win7 的 SP1补丁包
3、替换Win7的C:\Program Files\Common Files\System\ado下的对应ado组件为XP SP3下的对应文件。
比如:将原来的Win7的msado27.tlb改名为msado27-new.tlb
然后将XP的msado27.tlb复制到ado目录。重新打开VB编译程序即可。
注意:Win7的ado文件夹要先设置权限哦!

Windows XP版本的msado27.tlb
快盘下载:http://www.kuaipan/file/id_3716800273456462.html


本文标签: 解决方案 数据库 程序 系统 VB