00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 #include "pqxx/libcompiler.h"
00020 
00021 #include "pqxx/transaction_base"
00022 
00023 namespace pqxx
00024 {
00025 
00027 
00054 class PQXX_LIBEXPORT dbtransaction : public transaction_base
00055 {
00056 protected:
00057   explicit dbtransaction(connection_base &,
00058                          const PGSTD::string &IsolationString,
00059                          const PGSTD::string &NName,
00060                          const PGSTD::string &CName);
00061 
00062   virtual ~dbtransaction();
00063 
00065   void start_backend_transaction();
00066 
00067 private:
00069   virtual void do_begin() =0;
00071   virtual result do_exec(const char Query[]);
00073   virtual void do_commit() =0;
00075   virtual void do_abort() =0;
00076 
00078   PGSTD::string m_StartCmd;
00079 };
00080 
00081 
00082 } 
00083