首页 文章

插入到postgresql 9.1似乎工作但什么都不做(QT postgres驱动程序)

提问于
浏览
0

我正在使用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 回答

  • 0

    QString consulta = "Insert into productos values ('25','25','25)";
    你遗忘了最后一个值的 '
    (应该 QString consulta = "Insert into productos values ('25','25','25')";

相关问题