open cursor 的时候只是打开了一个指针 并没有真正的取数据 这时不知道是否为null
可以先执行
SELECT FieldA FROM TableA WHERE FieldA=:id and rownum=1; 看结果集是否为null
然后再执行
SELECT FieldA FROM TableA WHERE FieldA=:id ;但我没仔细研究程序 是不是程序的逻辑可以重新改改

解决方案 »

  1.   

    EXEC SQL DECLARE cursor1 CURSOR FOR
       SELECT FieldA FROM TableA WHERE FieldA=:id;
    EXEC SQL OPEN cursor1;EXEC SQL FETCH cursor1 INTO :pid;
    if (sqlca.sqlcode==0)
    {
       while (1)
    {
       if (sqlca.sqlcode==0)
       {
            /*一些操作*/
            i++;
        }
        else
        {
    return sqlca.sqlcode;
         }
       EXEC SQL FETCH cursor1 INTO :pid;}
    else
    {} 
    EXEC SQL CLOSE cursor1;