环境配置:
VC++6.0 + ADO + ORACLE9i + winXP。
问题:
报出ORA-12154: TNS:could not resolve service name的错误。
以下是连接程序部分代码:
//打开数据库函数
BOOL CADO::openDB(CString m_strPathName, CString m_strName, CString m_strPassword, CString m_strProvider)
{
try
{
initConnection();
initRecordSet();
initCommand();
m_pConnection->Provider = _bstr_t(m_strProvider);
if(S_OK == m_pConnection->Open(_bstr_t(m_strPathName),
_bstr_t(m_strName),
_bstr_t(m_strPassword),
adModeUnknown))
return TRUE;
else
return FALSE;
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
return FALSE;
}
}
调用打开函数代码:
if(!(classAdo.openDB(dataSource,strUser,strPassword,"OraOLEDB.Oracle.1")))
{
AfxMessageBox("连接数据库失败");
return FALSE;
}
上述同样的代码在不同的工程中连接数据库,有一个没有问题,另一个就连接错误出现刚才的错误。
解决方法:
出现问题的工程的路径是:
D:/Documents and Settings/wlw/桌面/NEW/新建文件夹 (4)/YXRM
将 新建文件夹 (4)---》新建文件夹4后,重新编译连接数据库,OK。
问题很奇怪,不知道是什么原因????