我正在使用 PostgreSQL 9.1、Qt 4.8.4 并为 qt 正确配置了 postgresql 驱动程序,我的问题是下一个:
我编写了一个小程序来测试我需要使用的数据库,并且只要它得到程序和数据库之间的连接工作正常,因为 .open() 方法没有返回错误,但是当我尝试插入一些东西时一张桌子,它只是不这样做。没有错误出现,也没有警告,什么都没有。当我在终端中看到数据库时,它什么也没发生,它和以前一样......
怎么了?顺便说一句,我使用的是 Ubuntu 12.06 64 位,我的代码如下(只是省略了 QT Widget 代码),谢谢!:
//Respective headers
int main(int argc, char *argv[])
{
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("database");
db.setUserName("user");
db.setPassword("somepass");
if(!db.open())
{
cout << "Database cannot be opened";
}
//Unitl here no errors
QString consulta = "Insert into productos values ('25','25','25)";
//db.transaction();
QSqlQuery query(db);
query.prepare(consulta); //Here tried to pass directly the string with same results
query.exec(); //Even omitted .prepare but nothing
query.finish();
cout << "Rows affected: " << query.numRowsAffected();
// db.commit();
//Finishes ok but no errors
}
哪一种是正确的方法?谢谢
PD.- 数据库不是问题,直接在 psql 中查询运行良好