0
0
mirror of https://github.com/rbock/sqlpp11.git synced 2024-11-15 20:31:16 +08:00

Add basic documentation for transactions

This commit is contained in:
Roland Bock 2022-01-08 18:03:22 +01:00
parent eb48909721
commit 027223c515
2 changed files with 45 additions and 0 deletions

View File

@ -20,5 +20,6 @@ The following pages will tell you how to use it:
* [Remove](Remove.md)
* [Functions](Functions.md)
* [Prepared Statements](Prepared-Statements.md)
* [Transactions](Transactions.md)
* [NULL](NULL.md)
* [New Features](New-Features.md)

44
docs/Transactions.md Normal file
View File

@ -0,0 +1,44 @@
# Transactions
Transactions are simple in sqlpp11. Assuming you have a connection called `db`,
you can start and commit a transaction just like this:
```C++
auto tx = start_transaction(db);
// do something
tx.commit();
```
If you need to rollback the transaction, you can call it's `rollback()` member,
for instance like this:
```C++
auto tx = start_transaction(db);
try
{
// do something
tx.commit();
}
catch (...)
{
tx.rollback();
}
```
In case you call neither `commit()` nor `rollback()` on a transaction before it
goes out of scope, it will call `rollback()` in its destructor. This automatic
rollback will be reported by the connection.
## More options
You can turn off reporting for automatic rollback in the destructor by passing
`sqlpp::quiet_auto_rollback`.
```C++
auto tx = start_transaction(db, sqlpp::quiet_auto_rollback);
```
You can also specify the isolation level for the transaction:
```C++
auto tx = start_transaction(db, ::sqlpp::isolation_level::repeatable_read);
```