有这样用的吗?? scroll cursor???下面的语句可以实现你想要的功能吧
exec sql whenever notfound do break;
while(1)
{
   exec sql fetch ....;
}

解决方案 »

  1.   

    EXEC SQL DECLARE auths_cursor CURSOR FOR 
    SELECT * FROM auths 
    WHERE author_code=:author_code 
    FOR UPDATE OF salary; 
    /* 打开游标auths_cursor */ 
    EXEC SQL OPEN auths_cursor; 
    /* 未检索到数据时退出循环 */ 
    EXEC SQL WHENEVER NOT FOUND DO break; 
    while(1) 

    /* 推进游标 */ 
    EXEC SQL FETCH auths_cursor 
    INTO :auths_record:auths_record_ind; 
    printf("\n作家姓名:\t%s\n",auths_record.name); 
    printf("作家工资:\t%8.2f\n",auths_record.salary); 
    printf("\n是否要修改作家工资(Y/N):"); 
    scanf("%c",&modify); 
    fflush(stdin); 
    if((modify == 'Y') || (modify == 'y')) 

    printf("\n输入工资:"); 
    scanf("%f",&salary); 
    fflush(stdin); 
    /* 更新作家工资 */ 
    EXEC SQL UPDATE auths SET salary=:salary 
    WHERE CURRENT OF auths_cursor; 


    /* 关闭游标auths_cursor */ 
    EXEC SQL CLOSE auths_cursor;