我用OLE DB执行Oracle中的存储过程时会发生:“多步 OLE DB 操作产生错误。请检查每个 OLE DB 状态值。没有工作被完成。”的错误。请问如何解决?
关键代码如下:
………………
prs = new CCommand<CManualAccessor, CRowset, CMultipleResults>;
prs->Create(m_session, strCall);//strCall 如“{ call test.getall }"形式
prs->Prepare(1);
………………
CDBPropSet propset(DBPROPSET_ROWSET);//DBSCHEMA_PROCEDURES
if (m_nDbType == DB_TYPE_ORACLE)
{//Oracle要求要加上这句话
propset.AddProperty(ORAPROP_PLSQLRSet, true);
}if (prs->Open(&propset, NULL, false) != S_OK)
{
GetLastError(m_szLastErrorDesc);//到这里出错,m_szLastErrorDesc为上面提到的信息。
………………
关键代码如下:
………………
prs = new CCommand<CManualAccessor, CRowset, CMultipleResults>;
prs->Create(m_session, strCall);//strCall 如“{ call test.getall }"形式
prs->Prepare(1);
………………
CDBPropSet propset(DBPROPSET_ROWSET);//DBSCHEMA_PROCEDURES
if (m_nDbType == DB_TYPE_ORACLE)
{//Oracle要求要加上这句话
propset.AddProperty(ORAPROP_PLSQLRSet, true);
}if (prs->Open(&propset, NULL, false) != S_OK)
{
GetLastError(m_szLastErrorDesc);//到这里出错,m_szLastErrorDesc为上面提到的信息。
………………
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货