私は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 で直接クエリを実行しても問題ありません