无法通过Visual Studio将值插入表中

时间:2013-12-27 02:16:52

标签: c++ oracle visual-studio

bool BDados::registar(string nome, string email, string gabinete, string sigla, string pass) {    

stringstream query;
        query << "INSERT INTO Docente VALUES (" << 7 << ",'" << nome << "','" << email << "','" << codigo << "','" << sigla << "','" << pass << "')";
        try{
            instrucao = ligacao->createStatement(query.str());
            ResultSet* re = instrucao->executeQuery();

            cout << "Registo efectuado com sucesso." << endl;
            return true;
        }catch (SQLException erro) {
            cout << erro.getMessage();
            return false;
        }
}

所以我正在使用此代码将行插入到我的表Docente中。但它没有做任何事情。奇怪的是,没有抛出SQLException,所以理论上这应该正常工作或者我错过了什么?

修改 问题是我认为executeUpdate会自动提交,但显然它没有。解决方案是添加

ligacao->commit();

并替换此ResultSet* re = instrucao->executeQuery(); 使用此int a = instrucao->executeUpdate();

3 个答案:

答案 0 :(得分:1)

您是否将更改提交给了数据库?

答案 1 :(得分:0)

这种情况最可能的原因是你有两个数据库。

您正在插入一个但在另一个数据库中查找插入的记录。

答案 2 :(得分:0)

根据Oracle的文档,你应该使用executeQuery进行查询(这不是)和executeUpdate进行插入和更新(这是)。