向大家请教个问题,弄了很久还是解决不了我想用ADO方法使用Oracle数据库,连接字符串中Provider=MSDASQL.1,数据源用的是Oracle in OraHome92在对表进行访问时出现了如下错误正确连接到数据库后
//SQL
_bstr_t strSQL("SELECT * FROM XD_DOT WHERE DDT = :v1 ORDER BY SEQUENCE");//初始化CommandPtr
_CommandPtr pAdoCmd;
pAdoCmd.CreateInstance(__uuidof(Command));
pAdoCmd->ActiveConnection = m_pConnection;
pAdoCmd->CommandType = adCmdText;
pAdoCmd->CommandText = strSQL;
_ParameterPtr   pParam;//往CommandPtr里加参数
VARIANT vtRoyalty;
vtRoyalty.vt = VT_BSTR;
vtRoyalty.bstrVal = (_bstr_t)ddtCode;
pParam = pAdoCmd->CreateParameter("v1", adBSTR, adParamInput, 5, vtRoyalty);
pAdoCmd->Parameters->Append(pParam);//执行
m_pRecordset = pAdoCmd->Execute(NULL, NULL, adCmdText);
异常就在执行那里抛出了。具体的错误记录是:
IDispatch error #3088
[Microsoft][ODBC driver for Oracle][Oracle]ORA-01008: 并非所有变量都已关联我在网上查了半天,有人说如果把SQL语句里的“:v1”换成“?”就可以。可如果有:v2,v3,v4...怎么办?
是不是连接字符串中的Provider或数据源配置时就弄错了,向我这样配置是用的ADO方式吗?希望大家能帮忙,十分感谢!!!