count的值打印出来是多少?

解决方案 »

  1.   

    EXEC SQL FETCH airplane INTO :aa,:bb;你又没有定义游标!干吗用fetch
      

  2.   

    nicholaz的建议很对。
    其实问题还是出现在异常处理上,如果你能够在每个exec sql后面判断一下SQLCODE,再打印出错误信息,那么就很容易看出问题了。
      

  3.   

    EXEC SQL DECLARE teng CURSOR FOR select id,name from teng;
    EXEC SQL OPEN teng;
    iCount=0; 
    EXEC SQL FETCH teng into :aa,:bb;
     printf(" 执行游标[%d] 次数       [%d]\n ", sqlca.sqlcode, iCount);
             if((sqlca.sqlcode < 0) ||(sqlca.sqlcode == 1403)){
                  break;
             }///////////
    总是得到sqlca.sqlcode=1403
     执行游标[1403] 次数       [1]
    请问什么原因呀
      

  4.   

    首先你应该每个EXEC SQL后加上判断(包括连接数据库CONNECT的地方)。
    我现在没有ORACLE,所以不知道1403是什么错误。但是我估计可能的原因是:
       没有连接到数据库;
       之前的DECLARE错了;
       之前的OPEN错了;
       id或name包含了空值(这时必须使用指示器变量)。