直接用sql = " insert into student(sno,sname) values(1,'张')";可以插入记录,但用set绑定输入参数就不行,插入的是一条空记录,用getSQL()得到的是insert into student(sno,sname) values(:1,:2),一点没变。
不知道问题出在哪,我是依葫芦画瓢,求高手指教。
    stmt = conn->createStatement(); //创建一个Statement对象  
    sql = " insert into student(sno,sname) values(:1,:2)";  //拼接一个SQL语句
    stmt->setSQL(sql); //设置SQL语句到Statement对象中
    try {
     stmt->setInt(1,5); //给第一个参数x赋值
     stmt->setString(2,"wangwu"); //给第二个参数y赋值
 cout<<stmt->getSQL()<<'\n';
     stmt->executeUpdate();//执行SQL语句      
     cout << "INSERT ―― SUCCESS" << endl;

}  
    catch (SQLException ex) {
cout << " Error Number : "<< ex.getErrorCode() << endl; //取出异常代码
cout << ex.getMessage() << endl; //取出异常信息
}
    conn->terminateStatement(stmt);
   

解决方案 »

  1.   


    --将你的绑定变量用问号代替sql = " insert into student(sno,sname) values(:1,:2)"; //拼接一个SQL语句改成:sql = " insert into student(sno,sname) values(?,?)"; //拼接一个SQL语句其它不变
      

  2.   

    getSQL是不会变的  你看数据库插的值对了就对了
      

  3.   


    改成问号后,直接报错,ORA-32109:列或者参数的位置无效。
    我看了官网的例子是(:1,:2)这么给的,不知道为什么参数传递不进去