proc*c 中1403问题?
JasLi 2003-03-02 03:33:14 有一段代码:
/* 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...,哪位知道是什么原因?