0

我正在使用 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 中查询运行良好

4

1 回答 1

0

QString consulta = "Insert into productos values ('25','25','25)";
您忘记'了最后一个值
(应该是QString consulta = "Insert into productos values ('25','25','25')";

于 2013-03-22T07:58:16.500 回答