0

私はPostgreSQL 9.1、Qt 4.8.4を使用しており、qt用にpostgresqlドライバーを適切に構成しています。私の問題は次のとおりです。

使用する必要があるデータベースをテストするために小さなプログラムをコーディングしました。プログラムとデータベースの間の接続が正常に機能する限り、.open() メソッドはエラーを返しませんが、何かを挿入しようとするとそれができないテーブルです。エラーも警告も何も表示されません。ターミナルでDBを見ると、以前と同じで何も起こりません...

何が起こっている?ところで、私は Ubuntu 12.06 64 ビットを使用しており、私のコードは次のとおりです (QT ウィジェット コードを省略しただけです)、ありがとう! :

//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 に答える