EXEC SQL FETCH send_cursor INTO :b0;
这句话的意思是把a=1的纪录附给b0吧?也就是说b0不是good了,怎么改的过去?

解决方案 »

  1.   

    你说的更新不用用游标。执行
    strcpy((char*)sql.arr,"update test1 set b='good' where a=1 ");
    sql.len=strlen((char*)sql.arr);
       EXEC SQL PREPARE sqlstm FROM :sql;
       EXEC SQL EXECUTE sqlstm;
       EXEC SQL COMMIT;就可以了。
      

  2.   

    EXEC SQL FETCH send_cursor INTO :b0;
    EXEC SQL UPDATE TEST1 SET B=:b0;  
    改过去就怪了
      

  3.   

    若是查询条件限制死的话,uje(sky)说的对,该种方式最简洁;
    若查询条件随时更改可考虑有游标完成,上述程序的主要错误就在于用
    从数据库取出的数据覆盖了b0,导致strcpy对b0的初始化形同虚设。