ado 连接 oracle DB_E_ERRORSINCOMMAND错误

环境 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值


你可能感兴趣的:(ado 连接 oracle DB_E_ERRORSINCOMMAND错误)