当前位置: 代码迷 >> VC/MFC >> vs2005 mfc下连接Access及Excel时ADODB:Connection.Open失败后创建的对应对虾不能再被使用!解决方案
  详细解决方案

vs2005 mfc下连接Access及Excel时ADODB:Connection.Open失败后创建的对应对虾不能再被使用!解决方案

热度:116   发布时间:2016-05-02 03:46:09.0
vs2005 mfc下连接Access及Excel时ADODB::Connection.Open失败后创建的对应对虾不能再被使用!
代码如下

Open失败的原因我知道。因为mstrModuleOSFile = “”;ConnectionString不合法。
但是我希望它捕获异常以后,我还可以正常使用mobjConn这个变量,或者能删了重新创建也好。
调试监视发现运行完mobjConn.open后。__vfptr这个变量为空了。

所以程序后面不管哪里怎么使用mobjConn都会报下图这个错,包括对mobjConn.Close(),Releace()或赋空都不行

有几点需要声明的:
1.同样的情况在VB里是没有问题的。
2.mobjConn.open正确路径的文件也是没有问题的。

大神们求助。

------解决思路----------------------
有可能封装对象一旦遇错之后就自动释放了,所以在不清楚的情况下最好不要用封装好的对象.
------解决思路----------------------
你这看堆栈明显是idispatch被释放了,你再createinstance呗
------解决思路----------------------
既然捕获异常了,那么就是当前这个对象没有成功打开,你可以重新创建,再重新打开
  相关解决方案