MFC通过ADO连接Oracle数据库

程序的代码如下:
1、在”StdAfx.h”文件中导入库:

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")

2、在类里添加成员变量:

_ConnectionPtr m_pCnn;

3、连接数据库:

m_pCnn.CreateInstance(__uuidof(Connection));
try{
m_pCnn->ConnectionTimeout = 5;                          //设置连接时间
m_pCnn->Open(_bstr_t(sConn),strUserID,strPwd,adModeUnknown);
return true;
}
catch(_com_error e){
AfxMessageBox(e.Description());
return false;
}

在调试时如果出现以下错误:
1、”未找到oracle 客户端和网络组件”
这可能是由于运程程序的电脑上没有Oracle的客户端,需要安装上

2、”发生了一个Oracle错误,但无法从Oracle中检索错误“
这个可能是由于你的电脑是X64位的,程序无法在注册表中找到
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1]
ORACLE_HOME的值
因为安装时,该值被写入到了:
[HKEY_LOCAL_MACHINE\SOFTWARE\[color=#FF0000]Wow6432Node[/color]\ORACLE\KEY_OraDb11g_home1]

手动加上,重启电脑即可,如下图:

ORACLE_HOME的值是你安装Oracle的目录

3、“Error while trying to retrieve text for error ORA-01019″
给ORACLE_HOME的值所指定的目录添加Net service用户的”读取和运行”权限

发表评论