Listing 3

// Sample showing use of transaction object
{
    transaction trans(db); // first transaction object is created
    const std::string insert_sqlstmt = 
       "INSERT INTO Persons (Name, Age) VALUES ('Asger, my son', 2);
    db.excute(insert_sqlstmt);
    {
       transaction trans(db); // 2nd trans obj. is created 
                             // - still same database transaction
       db.excute(insert_sqlstmt);
       trans.set_abort();
    } 
    trans.set_complete();
}