QIBASE and problem with transaction



  • Qt 4.8.4, Firebird 2.5.

    I have code like this:
    @
    // model - QSqlRelationalTableModel
    if( model->database().transaction() )
    {
    int indexDialog;

        if( _index == 0 )
        {
            model->insertRow( model->rowCount() );
            indexDialog = model->index( model->rowCount() - 1, 0 ).row();
        }
        else
        {
            indexDialog = _index;
        }
    
        DokumentDialog dialog( model, indexDialog, this );
        if( dialog.exec() == QDialog::Accepted )
        {
            if( dialog.submit() )// call mapper->submit();
            {
                if( model->database().commit() )
                {
                    qDebug() << BOOST_CURRENT_FUNCTION;
                    qDebug() << "\ttransaction successful commit";
                }
                else
                {
                    qDebug() << BOOST_CURRENT_FUNCTION;
                    qDebug() << "\ttransaction faild to commit";
                    qDebug() << "\t" << model->lastError().text();
    
                    model->database().rollback();
                    model->revert();
                }               
            }
            else
            {
                qDebug() << BOOST_CURRENT_FUNCTION;
                qDebug() << "\tsubmit from mapper error";
                qDebug() << "\t" << model->lastError().text();
                
                model->database().rollback();
                model->revert();
            }
        }
        else
        {
            model->database().rollback();
            model->revert();
        }
    }
    

    @

    First insert/update is ok. Second and next returns me an error:
    @
    submit from mapper error
    "invalid transaction handle (expecting explicit transaction start) Unable to execute query"
    @

    When I comment transaction, commit, rollback then insert and updates works ok, but I want to solve transaction issue.


  • Lifetime Qt Champion

    Hi,

    Did you check that your driver has that feature ?



  • Yes, I checked and driver has this feature.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.