博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VC下这样创建实例m_pRecordset.CreateInstance(_uuidof(Connection))不一定成功!...
阅读量:7068 次
发布时间:2019-06-28

本文共 1160 字,大约阅读时间需要 3 分钟。

//昨天在打开数据库的记录集时,出现了一个错误,错误提示为无效的指针类型,上网查了一下,原来是我的

//的程序在创建实例时,出现了错误,呵呵,以前我都是这样创建实例的:m_pRecordset.CreateInstance(_uuidof(Connection))

//我调试程序错误时的代码如下:

//创建实例

 HRESULT hr=adoConn.m_pRecordset.CreateInstance(_uuidof(Connection));
 if (FAILED(hr))
 {
       _com_error e(hr);
       AfxMessageBox(e.ErrorMessage());
     return;
 }

结果得到的错误提示截图如下:

根据错误提示,将代码改为:adoConn.m_pRecordset.CreateInstance("ADODB.Recordset");   //呵呵,这样修改后程序就正常了!

 

//文章最后附上我为解决此问题而找的资料,呵呵,说不定哪天还有用处呢!

 

把你的每一句加上:

HRESULT hr=S_OK;

hr=m_pConn.CreateInstance("ADODB.Connection");

hr=m_pRecordset.CreateInstance("ADODB.Recordeset");
...............

观察hr的值,非0的时候就说明这句执行是不成功的。。。。

HRESULT hr = m_pRecordset.CreateInstance(__uuidof(ADODB::Recordset));
if (FAILED(hr))
{
_com_error e(hr);
AfxMessageBox(e.ErrorMessage());
return;
}

应该用CoInitialize(NULL);初始化,而不是AfxOleInit()

1.在C:\Program Files\Common Files\System\ado下找到msado15.dll

在命令行输入命令: regsvr32 C:\Program Files\Common Files\System\ado\msado15.dll

回车后,注册该ado模块(如果注册失败,可以将当前路径先到
C:\Program Files\Common Files\System\ado目录再进行注册)
   运用后能正常。
2.如果上述方式已然不行,那说本台电脑的这个文件可能有问题,
可以去找一台没有问题的电脑,把这个文件拷贝过来,
然后操作1的步骤即可解决!

 

 

 

转载于:https://www.cnblogs.com/friendan/archive/2011/11/17/2838244.html

你可能感兴趣的文章
heartbeat+ldirectord实现web与dns的高可用性
查看>>
luacurl安装
查看>>
JBoss的配置
查看>>
软件测试之Web实战测试
查看>>
Tomcat的参数配置及一般问题的解决
查看>>
JAVA CAS原理深度分析
查看>>
O2O?啥是“呕吐呕”?
查看>>
百度的疯狂 UC的隐忍
查看>>
我的友情链接
查看>>
AGG第三十五课 gsv_text 渲染ASCII字符
查看>>
查找组成一个偶数最接近的两个素数
查看>>
不怕狼一样的敌人,就怕狗一样的朋友
查看>>
bash基础特性
查看>>
【连载】物联网全栈教程-从云端到设备(十二)---最简单的单片机上云方法!...
查看>>
如何自学编程?学习方法在这里!
查看>>
springboot web应用 jar 启动 ant脚本
查看>>
SolrCould 集群搭建
查看>>
IDEA Git版本回滚提交方式
查看>>
tomcat中同时启动两个项目出现内存不足的错误提示解决办法
查看>>
ssm框架开发过程中遇到的一错误以及解决问题提示
查看>>