1.我想问一下在EXEC SQL update ……之后,怎么取得这个语句在执行后被数据库被更新的记录数?
2.select aa into :c from table1 where b=1, 如果这里aa是一个变量,代表具体的字段名,怎么写EXEC SQL语句?

解决方案 »

  1.   

    第一个你用一个count就好了吧,你update的时候肯定有个where的,你在update 之前count一下where就可以了
      

  2.   

    1.我想问一下在EXEC SQL update ……之后,怎么取得这个语句在执行后被数据库被更新的记录数?
    SQL%ROWCOUNT    记录的影响行数---
     EXECUTE IMMEDIATE v_sql;      IF SQL%ROWCOUNT = 0 --当记录数为0时。
          THEN
             ...
          END IF;
      

  3.   

    2.select aa into :c from table1 where b=1, 如果这里aa是一个变量,代表具体的字段名,怎么写EXEC SQL语句?
    declare 变量C 变量类型;
    begin
    select aa into 变量C from table1 where b=1;
    end;--这样就可以了
      

  4.   

    第二个问题他是指烈名是动态的吧?
    那样用动态sql
      

  5.   

    第一个问题,查看 
    sqlca.sqlerrd[2]
    第二个问题,使用动态SQL语句,比如prepare语句
    查看例子代码
        sprintf(dynstmt.arr,
            "select %s into :c from table1 where b=1",aa);
        dynstmt.len = (unsigned short)strlen((char *)dynstmt.arr);
        EXEC SQL PREPARE S FROM :dynstmt;
        EXEC SQL DECLARE C CURSOR FOR S;
        EXEC SQL OPEN C ;
      

  6.   

    1、SQL%ROWCOUNT
    2、先声明变量declare