20#include <kexidb/transaction.h>
21#include <kexidb/connection.h>
29#define KexiDBDbg if (0) kdDebug()
34KEXI_DB_EXPORT
int Transaction::globalcount = 0;
35KEXI_DB_EXPORT
int Transaction::globalCount() {
return Transaction::globalcount; }
36KEXI_DB_EXPORT
int TransactionData::globalcount = 0;
37KEXI_DB_EXPORT
int TransactionData::globalCount() {
return TransactionData::globalcount; }
39TransactionData::TransactionData(
Connection *conn)
45 Transaction::globalcount++;
46 TransactionData::globalcount++;
47 KexiDBDbg <<
"-- TransactionData::globalcount == " << TransactionData::globalcount << endl;
50TransactionData::~TransactionData()
52 TransactionData::globalcount--;
53 KexiDBDbg <<
"-- TransactionData::globalcount == " << TransactionData::globalcount << endl;
61 : TQObject(0,
"kexidb_transaction")
67 : TQObject(0,
"kexidb_transaction")
68 , m_data(trans.m_data)
72 Transaction::globalcount++;
76Transaction::~Transaction()
80 Transaction::globalcount--;
81 KexiDBDbg <<
"~Transaction(): m_data->refcount==" << m_data->refcount << endl;
82 if (m_data->refcount==0)
86 KexiDBDbg <<
"~Transaction(): null" << endl;
88 KexiDBDbg <<
"-- Transaction::globalcount == " << Transaction::globalcount << endl;
95 Transaction::globalcount--;
96 KexiDBDbg <<
"Transaction::operator=: m_data->refcount==" << m_data->refcount << endl;
97 if (m_data->refcount==0)
100 m_data = trans.m_data;
103 Transaction::globalcount++;
108bool Transaction::operator==(
const Transaction& trans)
const
110 return m_data==trans.m_data;
115 return m_data ? m_data->m_conn : 0;
120 return m_data && m_data->m_active;
131 : m_trans( conn.beginTransaction() )
149 if (!m_doNothing && m_trans.
active() && m_trans.connection())
155 if (m_trans.
active() && m_trans.connection()) {
Provides database connection, allowing queries and data modification.
bool commitTransaction(Transaction trans=Transaction::null, bool ignore_inactive=false)
bool rollbackTransaction(Transaction trans=Transaction::null, bool ignore_inactive=false)
This class encapsulates transaction handle.
static const Transaction null
High-level database connectivity library with database backend drivers.