ADO方式连接数据库,出现"无效指针"错误,错误代码为:0x80004003
2012-07-23 18:20
696 查看
之前的捕获代码也贴在这里
catch(_com_error e) //捕捉异常 { CString strErro; strErro.Format("连接数据库失败!代码:%08X 信息:%s 描述:%s\r\n", e.Error(),(wchar_t*)e.ErrorMessage(),(wchar_t*)e.Description()); AfxMessageBox(strErro); return FALSE; } catch(...) { AfxMessageBox("Unkown Error..."); }+初始化后成功~
::CoInitialize(NULL); OnMenuitemRelogin() ; //调用登陆框,首先显示登陆框 ::CoUninitialize();
http://hi.baidu.com/isafesoft/item/97c9b4c19183e6b30d0a7be8
或者参照上述地方的
后来查资料知道,ADO是com组件,它必须先进行初始才能够正常使用,初始方法是在代码前加入一行:
CoInitialize(NULL);
当然,最好在代码结束的地方加一行
CoUninitialize();
那么,程序就能够正常运行了.
总结一下,在MFC中可以用AfxOleInit();但在非MFC环境下一定要用CoInitialize().有部分高深者习惯将CoInitialize()放在工程的APP类的InitialInstance()中,所以在直接调用ADO联机的地方看不到它,但千万不要以为没有它也能调用ADO进行数据访问哦!
后来仔细看了下书上实例,在App函数中添加了OLE环境初始化代码
CMy10DBMSApp::CMy10DBMSApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
//初始化OLE环境
if(!AfxOleInit())
{
AfxMessageBox("OLE初始化失败");
}
}
相关文章推荐
- ADO方式连接数据库,出现"无效指针"错误,错误代码为:0x80004003
- C++ ADO连接数据库出现无效指针错误
- 在VC中利用ADO连接数据库出现Runtime erro "无效指针"
- ADO连接数据库出现“无效指针”错误码80004003
- FILEDSN方式连接数据库出现[Microsoft][ODBC SQL Server Driver]无效的属性/选项标识符错误
- RMAN 下执行startup 命令出现"ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务" 错误
- 在 SQL Server 2008年中打开 SQL Server 配置管理器时出现错误消息:"无法连接到 WMI 提供程序。您没有权限,或者服务器无法访问"
- 解决解密时出现"要解密的数据的长度无效" 或 "填充无效无法被移除" 的错误
- 编译C++代码时出现"error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int"错误。
- ADO连接数据库,编译到客户机运行时出现CreateInstance报错0x80004002、CreateParameter报0xC0000005错误的解决方法。
- Dreamweaver MX 中数据库连接"发生不知名错误"
- 远程桌面连接出现"由于网络错误,连接被中断,请重新连接到远程计算机"错误
- ODBC连接MySQL出现"E_FAIL"错误
- 动软代码生成器 第一次使用出现附加数据库错误是否添加"写入"权限
- 类语句.NET下编译C++代码时出现"error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int"错误的解决方法。
- 数据库2008登不上" 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误"
- K3 10.3版 登录时出现 "定义的应用程序或对象错误" 错误代码:1726(6BEH) 的解决方法
- VC++ 通过ADO方式连接SQLServer20XX出现sqlserver 不存在或者拒绝连接错误
- 专利系统数据库连接出现 base-64字符串中的无效字符 错误
- 数据库连接字符串用IP死活连不上,只能用计算机名连,ADO或ORM错误提示为表“对象”无效