Qt数据库事务操作

来源:互联网 发布:怎么导入mysql数据库 编辑:程序博客网 时间:2024/05/24 02:09

连接

    QSqlDatabase db;        connection(QString const& connectionName)        {            static InitDB init;            db = QSqlDatabase::addDatabase("QPSQL", connectionName);            db.setHostName(init.hostName);            db.setPort(init.port);            db.setDatabaseName(init.databaseName);            db.setUserName(init.username);            db.setPassword(init.password);            if (!db.open())            {                qCritical() << db.lastError();            }        }

使用

if (db.driver()->hasFeature(QSqlDriver::Transactions))    {        //启动事务操作        if (db.transaction())        {            QSqlQuery t_db(db);            //组sql语句            QString t_sql;            t_sql = R"( DELETE FROM "tableName" WHERE id = ':id';)";            t_sql.replace("tableName", tableName);            t_sql.replace(":id", Id);            t_db.prepare(t_sql);            t_db.exec();            //提交事务            if (!db.commit())            {                if (!db.rollback())                {                    return db.lastError().type();                }                else                {                    return 66;                }            }            return 0;        }    }
原创粉丝点击