00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <sqlite3.h>
00027 #include "sqlite3x.hpp"
00028
00029 namespace sqlite3x {
00030
00031 sqlite3_transaction::sqlite3_transaction(sqlite3_connection &con, bool start) : con(con),intrans(false) {
00032 if(start) begin();
00033 }
00034
00035 sqlite3_transaction::~sqlite3_transaction() {
00036 if(intrans) {
00037 try {
00038 rollback();
00039 }
00040 catch(...) {
00041 return;
00042 }
00043 }
00044 }
00045
00046 void sqlite3_transaction::begin() {
00047 con.executenonquery("begin");
00048 intrans=true;
00049 }
00050
00051 void sqlite3_transaction::commit() {
00052 con.executenonquery("commit");
00053 intrans=false;
00054 }
00055
00056 void sqlite3_transaction::rollback() {
00057 con.executenonquery("rollback");
00058 intrans=false;
00059 }
00060
00061 }