ITPub博客

首页 > 数据库 > Oracle > proc oracle游标使用问题

proc oracle游标使用问题

Oracle 作者:BOBOPERE 时间:2012-04-12 05:36:01 0 删除 编辑
proc oracle游标使用问题int queryDB_TB_FRA100(TABLE_ITEM *pTable_item_out)
{
int nCount = 0;

EXEC SQL BEGIN DECLARE SECTION;
VARCHAR sqlstr;
VARCHAR mesID;
VARCHAR mesData;
VARCHAR mesDate;

TCP 关于夭折的连接

/> VARCHAR matNo;
VARCHAR test;
EXEC SQL END DECLARE SECTION;

if (sqlca.sqlcode != 0)
{
etsDebug(0http://www.hkwho.com/, "数据库关闭sqlca.sqlcode1[%d]", sqlca.sqlcode);
return -1;
}



EXEC SQL DECLARE t_cursor CURSOR FOR SELECT Msg_id,MAT_no,Remark,crt_dtime FROM TB_FRA100 WHERE Flag = 0 ORDER BY Crt_dtime ASC;


EXEC SQL OPEN t_cursor;

if (sqlca.sqlcode != 0)
{
etsDebug(0, "数据库关闭sqlca.sqlcode3[%d]", sqlca.sqlcode);
EXEC SQL CLOSE t_cursor;
return -1;
}

while (1)
{
memset(mesID.arr, 0, sizeof(mesID.arr));
mesID.len = 0;
memset(mesData.arrhttp://www.ayahi.com/, 0, sizeof(mesData.arr));
mesData.len = 0;
memset(matNo.arr, 0, sizeof(matNo.arr));
matNo.len = 0;
memset(mesDate.arr, 0, sizeof(mesDate.arr));
matNo.len = 0;

EXEC SQL FETCH t_cursor INTO :mesID, :matNo, :mesData, :mesDate;

if (sqlca.sqlcode == 1403)
{
break;
}

if (sqlca.sqlcode < 0)
{
etsDebug(0, "数据库关闭sqlca.sqlcode5[%d]", sqlca.sqlcode);
EXEC SQL CLOSE t_cursor;
return -1;

}

mesID.arr = '';
mesData.arr = '';
matNo.arr = '';
mesDate.arr = '';

strncpy(pTable_item_out.mesID, mesID.arr, 32);
strncpy(pTable_item_out.mesData, mesData.arr, 4999);
strncpy(pTable_item_out.matNo, matNo.arr, 32);
strncpy(pTable_item_out.mesDate, mesDate.arr, 14);


++nCount;
}
EXEC SQL CLOSE t_cursor;

return nCount;
}


此段程序 运行一段时间后就停在EXEC SQL OPEN t_cursor;
也没有错误返回。 帮忙分析一下 谢谢。
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23078733/viewspace-1117520/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-12-25