我正在使用PostgreSQL 9.1,Qt 4.8.4并为qt正确配置了postgresql驱动程序,我的问题是下一个:
我编写了一个小程序来测试我需要使用的数据库,只要它获得程序和数据库之间的连接工作正常,因为.open()方法不会返回错误但是当我尝试插入一些东西时一张 table ,它不会这样做 . 没有任何错误出现警告,没有 . 当我看到终端中的数据库与以前相同时,它就没有发生任何原因......
怎么了?顺便说一句,我使用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中查询运行良好
1 回答
QString consulta = "Insert into productos values ('25','25','25)";
你遗忘了最后一个值的
'
(应该
QString consulta = "Insert into productos values ('25','25','25')";
)