c++代码如下:
_RecordsetPtr m_recordset;
m_recordset.CreateInstance(__uuidof(Recordset));
sqlstm="{call tty.my_pkg.my_proc()}";
//存储过程有两个游标输出参数:procedure my_proc(cu1 out my_cursor,cu2 out my_cursor)
hr = m_recordset->Open(sqlstm,m_conn,adOpenForwardOnly,adLockReadOnly,adCmdText);
while (!(m_recordset == NULL))
{
for (int j=0; j<colnum; j++)
{
//输出m_recordset->Fields->GetItem((long)j)->Name;
}
while (!m_recordset->EndOfFile)
{
for (int i=0; i<colnum; i++)
{
//输出m_recordset->GetFields()->GetItem((long)i)->Value;
}
m_recordset->MoveNext();
}
long lngRec = 0;
m_recordset = m_recordset->NextRecordset((VARIANT *)lngRec);
}
结果:读出第一个游标的内容后就报错:当前提供程序不支持从单一执行返回多个记录集
但是同样的代码调用sql server 的返回多个结果集的存储过程却都可以读到。
请高手帮忙!!
_RecordsetPtr m_recordset;
m_recordset.CreateInstance(__uuidof(Recordset));
sqlstm="{call tty.my_pkg.my_proc()}";
//存储过程有两个游标输出参数:procedure my_proc(cu1 out my_cursor,cu2 out my_cursor)
hr = m_recordset->Open(sqlstm,m_conn,adOpenForwardOnly,adLockReadOnly,adCmdText);
while (!(m_recordset == NULL))
{
for (int j=0; j<colnum; j++)
{
//输出m_recordset->Fields->GetItem((long)j)->Name;
}
while (!m_recordset->EndOfFile)
{
for (int i=0; i<colnum; i++)
{
//输出m_recordset->GetFields()->GetItem((long)i)->Value;
}
m_recordset->MoveNext();
}
long lngRec = 0;
m_recordset = m_recordset->NextRecordset((VARIANT *)lngRec);
}
结果:读出第一个游标的内容后就报错:当前提供程序不支持从单一执行返回多个记录集
但是同样的代码调用sql server 的返回多个结果集的存储过程却都可以读到。
请高手帮忙!!
解决方案 »
- Oracle 10g 索引结构信息查看问题
- create or replace type grjj as object
- Oracle 无效数字错误
- oracle,mysql迁移问题
- 高分求高手请指点:数据库备份方案。
- SQL中from后面最多可以列多少个表或视图?
- A'||i||' into '||sz_readdb(i)||' from o_inapp_v where 医院ID=''医院ID''' 返回为找回任何数据
- 向oracle中插入数据时,要先判断是否有,有则更新,没有插入,可不可以直接插入?
- sql的问题
- CentOS下连接不上oracle
- oracle 和C#
- [新手上路]SQLSERVER 的过程转成 oracle 的 plsql 的问题
差别蛮大
create procedure my_proc
as
select * from info_tab
select * from log_tab
goOracle存储过程为:
procedure my_proc(cu1 out my_cursor, cu2 out my_cursor)
begin
open cu1 for select * from info_tab;
open cu2 for select * from log_tab;
end;
我估计是这样的!
SELECT
a,
(select b from testtable where 条件1=1 and 条件2=2)B
FROM
table(select b from testtable where 条件1=1 and 条件2=2)B 应该是这种SQL语句返回的结果不是一个!