proc*c 中1403问题?

JasLi JasLi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有一段代码:
/* check if the rec exists */
if( caMeterNo[0] == 0x00 && caAccNo[0] != 0x00 )
{
/* organize where sub clause */
memset( s_caAccNo, 0, sizeof( s_caAccNo) );
memcpy( s_caAccNo, caAccNo, strlen(caAccNo) );

sprintf( g_caMsg, "[info] 帐号是 [%s] ", s_caAccNo );
ErrLog( 3000, g_caMsg, RPT_TO_LOG, NULL, 0 );

/* declare a cursor */
EXEC SQL
DECLARE c_rec CURSOR FOR
SELECT elecdevnum, accno, address
FROM elecrec
WHERE ACCNO = :s_caAccNo;

}else if( caAccNo[0] == 0x00 && caMeterNo[0] != 0x00 )
{
/* organize where sub clause */
memset( s_caMeterNo, 0, sizeof( s_caMeterNo) );
memcpy( s_caMeterNo, caMeterNo, 10 );

/* declare a cursor */
EXEC SQL
DECLARE c_rec CURSOR FOR
SELECT elecdevnum, accno, address
FROM elecrec
WHERE ELECDEVNUM = :s_caMeterNo;
}
......

for( ;; )
{

EXEC SQL FETCH c_rec INTO .....;
.......
}

碰到了奇怪的现象:如果程序进入第一个if开cursor, fetch 的结果正确,如果程序进入第二个if,fetch的结果是1403...,哪位知道是什么原因?

...全文
评论 6
收藏 已收藏
分享
返回顶部
JasLi
基础和管理 17,379 成员 95,111 内容