环境 vs2008,win7,oracle10g 服务端,oracle11g客户端
问题:
try
{
HRESULT hr = pRs->Open((_bstr_t)szSQL, m_pConn.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
}
catch (_com_error e)
{
CString ErrorStr;
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
ErrorStr.Format( "Code = %08lx\n\tCode meaning = %s\n\tSource = %s\n\tDescription = %s\n",
e.Error(), e.ErrorMessage(), (LPCSTR)bstrSource, (LPCSTR)bstrDescription );
}
在vs监视结果:
e = {DB_E_ERRORSINCOMMAND}
e.Error() 80040e14
e.ErrorMessage() IDispatch error #3092
e.Source() OraOLEDB
e.Description() ROW-00054: ?????
O/S-Error: (OS 126) ????????c??`?
原因:服务器上没有设置path变量,指向客户端及服务端路径
解决:计算机->右键属性->高级系统设置->环境变量->系统变量->添加
名称:path
内容:E:\oracle\product\10.2.0\db_1\BIN;E:\app\Administrator\product\11.2.0\client_1\bin;
ps:1.每台电脑oracle安装路径不同,适当修改,仅供参考
2.修改完需重启vs,以刷新path值