代码
tablename这个表只包含一个number字段在PROC中这样写的代码 unsigned long i =0;
for(i; i<20; ++i)
{
EXEC SQL insert into tablename values(i);
EXEC SQL commit;
}发现不能添加成功。
怎么实现好呢?SQLProcC++Coracle

解决方案 »

  1.   

    没有写catch和try的语句
     EXEC SQL insert into tablename values(i);
    这条语句不能添加i的对应数据进去
    程序执行后 我用select * from tablename;找不到数据 但把i改成一个常量的话:
    EXEC SQL insert into tablename values(20);
    能添加成功
    select语句能找出结果为什么这样子呢????
      

  2.   

    不太懂,但是是不是你的前台变量i要做些处理,比如这样,否则是不是直接把i当字符插进去了?
    unsigned long i =0;
    for(i; i<20; ++i)
    {
    EXEC SQL "insert into tablename values("+i+")";
    EXEC SQL commit;
    }
      

  3.   

    首先,检查你的数据库连接,前台是否成功连接数据库;
    另外,检查你的前台代码,在前台向dml中传入参数时,写法是否正确。
      

  4.   

    首先,检查你的数据库连接,前台是否成功连接数据库;
    另外,检查你的前台代码,在前台向dml中传入参数时,写法是否正确。改成这样就行了
    EXEC SQL "insert into tablename values(:i)";