也可以用,在错误操作之后执行一个肯定正确的sql,如"select sysdate from dual".while ((sqlca.sqlcode==0)||(sqlca.sqlcode!=1403))是什么意思?发生错误也继续(sqlca.sqlcode<0)?while ((sqlca.sqlcode==0)&&(sqlca.sqlcode!=1403)) 的意思是sql执行正常,并且游标有数据
while ((sqlca.sqlcode==0)&&(sqlca.sqlcode!=1403)) 我理解的是如果sqlca.sqlcode==0肯定就不等于1403啊。我写错了,本来是要写 while ((sqlca.sqlcode==0)||(sqlca.sqlcode==1403)) 如果sqlca.sqlcode为0或为1403
SELECT FieldA FROM TableA WHERE FieldA=:id;
EXEC SQL OPEN cursor1;
while ((sqlca.sqlcode==0)&&(sqlca.sqlcode!=1403))
{
EXEC SQL FETCH cursor1 INTO :pid; if(sqlca.sqlcode==1403)break; if (sqlca.sqlcode==0)
{
/*一些操作*/
i++;
}
else
{
EXEC SQL CLOSE cursor1;
return sqlca.sqlcode;
}
}
EXEC SQL CLOSE cursor1;
并且我希望不论操作是否成功都继续循环。那么是不是
不能用sqlca.sqlcode作为while循环条件了?比如:
EXEC SQL DECLARE cursor1 CURSOR FOR
SELECT FieldA FROM TableA WHERE FieldA=:id;
EXEC SQL OPEN cursor1;
while ((sqlca.sqlcode==0)&&(sqlca.sqlcode!=1403))
{
EXEC SQL FETCH cursor1 INTO :pid; if(sqlca.sqlcode==1403)break; if (sqlca.sqlcode==0)
{
/*一些操作*/
EXEC SQL DELETE FROM tableC WHERE xxxxx; /* (2) */
i++;
}
else
{
EXEC SQL CLOSE cursor1;
return sqlca.sqlcode;
}
}
EXEC SQL CLOSE cursor1;
可能是while ((sqlca.sqlcode==0)||(sqlca.sqlcode!=1403))吧
的意思是sql执行正常,并且游标有数据
我理解的是如果sqlca.sqlcode==0肯定就不等于1403啊。我写错了,本来是要写
while ((sqlca.sqlcode==0)||(sqlca.sqlcode==1403))
如果sqlca.sqlcode为0或为1403