我正在尝试创建简单的应用程序来沟通和控制我的数据库 . 我正在使用 PostgreSQL DBMS . 我已经为Linux安装了所有必需的驱动程序 . 我打开这样的数据库连接

db = QSqlDatabase::addDatabase("QPSQL");
db.setDatabaseName(dbName);
db.setHostName(host);
db.setUserName(usr);
db.setPassword(pwd);
if (!db.open())
{
    return false;
}

一切似乎都运行良好,我可以执行exec sql查询和其他东西 . 但我的交易有问题 . 我第一次打开事务调用事务方法,但是没有像我预期的那样工作,因为像commit和rollback这样的方法不起作用 . 所以在我的情况下,事务方法总是返回false .
还有一个奇怪的事情,如果我尝试从db对象获取最后一个错误,我将得到 "Driver not loaded Driver not loaded" ,但尽管如此它仍然适用于简单的查询 .

QSqlQuery query;
        QSqlDriver *driver = QSqlDatabase::database().driver();
        if (driver->hasFeature(QSqlDriver::Transactions)) {
       if(db.transaction()) {

在这个例子中,它为 hasFeature 返回 true 但是我在 db.transaction 中得到 false .

Note: 我正在使用Linux(Mint x64) .