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();
答案 0 :(得分:1)
您是否将更改提交给了数据库?
答案 1 :(得分:0)
这种情况最可能的原因是你有两个数据库。
您正在插入一个但在另一个数据库中查找插入的记录。
答案 2 :(得分:0)
根据Oracle的文档,你应该使用executeQuery进行查询(这不是)和executeUpdate进行插入和更新(这是)。