win7 sp 1下编译使用了ado的程序,在winxp下无法连接数据库.连得是mssqlserver2008r2express
同一个程序的同一个版本号,
在winxp 下编译,能连上数据库
在win7 sp1 下编译,就连不上数据库
原因是win7 sp1 和winxp的ado版本不一致,导致了某种不兼容性
winxp下编译的应该能在win7下运行没问题(能连上数据库)
win7 sp1 编译的在winxp下运行就有问题(连不上数据库)
维护已有程序最好方式看来只有虚拟机了
已经有官方办法解决此问题了.
http://support.microsoft.com/kb/2517589
简单说就是下个 msado60_Backcompat.tlb typelib文件,注册一下, import的时候不要import "msado15.dll" , 用 import "msado60_Backcompat.tlb"
理论上就没问题了.
没有试过.不过又出现了新的问题.
2011.11.08 ado 又做了更新.这次问题更严重了,直接就编译不过.找了很久也没找到什么问题.
错误出现在_RecordsetPtr 这个东西没有定以. 这个应该是在msjro.dll中. 定位错误都定位到了msjro.tli中.
不知道怎么回事.