Jangogo :
微软在Windows7 Sp1 中更改了 ADO 的接口ID(估计这是微软强迫用户升级到Win7 Sp1的一种方法?)
Windows 7/2008R2 with Sp1
uuid(00001556-0000-0010-8000-00AA006D2EA4),
…. interface _Recordset : Recordset21 {
….
uuid(00001564-0000-0010-8000-00AA006D2EA4),
…. interface Fields : Fields20 {
2008/Vista/XP/2003
uuid(00000556-0000-0010-8000-00AA006D2EA4),
… interface _Recordset : Recordset21 {
….
uuid(00000564-0000-0010-8000-00AA006D2EA4),
…. interface Fields : Fields20 {
这样意味着Win7 + SP1 下开发编译的ADO数据库驱动相关的应用程序,将不能在以外的系统中运行。会报错:430 不支持期望的接口。
解决方法:
因为微软只更改了IIDS 并没有更改CLSID,因此可以改成 后绑定的模式来创建 ADO对象:
' 以下代码如果在Win7+Sp1 编译,在其他计算机上运行会出错: dim cn as new ADODB.Connection '或者 dim cn as ADODB.Connection set cn=new ADODB.Connection '========================================= '采用以下后绑定模式,可以兼容任何版本操作系统 dim cn as object set cn=createobject("ADODB.Connection")
文档中心