oralib  0.0.8
oracle.h
Go to the documentation of this file.
1 #ifndef ORACLE_H
2 #define ORACLE_H
3 
9 #include <occiControl.h>
10 
28 namespace Oracle {
29 
30 class Nexus;
31 class SQL;
32 
39 class OracleEnv
40 { friend class Nexus;
41  public:
42  OracleEnv(bool=false);
43  OracleEnv(const OracleEnv &)=delete;
44  const OracleEnv & operator = (const OracleEnv &)=delete;
45  ~OracleEnv(void);
46  oracle::occi::Environment & operator() (void) { return *m_env; }
47 
48  protected:
49  oracle::occi::Environment *m_env;
50 };
51 
52 
58 class Nexus
59 { friend class SQL;
60  friend class OracleEnv;
61  public:
62  explicit Nexus(OracleEnv &, const char *, const char *, const char *);
63  Nexus(const Nexus &)=delete;
64  const Nexus & operator = (const Nexus &)=delete;
65  ~Nexus(void);
66  oracle::occi::Connection & operator () (void) { return *m_conn; }
67 
68  protected:
70  oracle::occi::Connection *m_conn;
71 };
72 
73 
79 class SQL
80 { friend class Nexus;
81  friend class Results;
82  public:
83  explicit SQL(Nexus &, const char * = 0);
84  SQL(const SQL &)=delete;
85  const SQL & operator = (const SQL &)=delete;
86  ~SQL(void);
87  oracle::occi::Statement & operator() (void) { return *m_stmt; }
88  unsigned Modify(const char * = 0);
89 
90  protected:
91  oracle::occi::Statement *m_stmt;
93 };
94 
95 
101 class Results
102 { friend class SQL;
103  public:
104  explicit Results(SQL &, const char * = 0);
105  Results(const Results &)=delete;
106  const Results & operator = (const Results &)=delete;
107  ~Results(void);
108  oracle::occi::ResultSet & operator() (void) { return *m_rs; }
109 
110  protected:
111  oracle::occi::ResultSet *m_rs;
113 };
114 
115 }
116 
117 #endif
Encapsulate the occi::Connection class.
Definition: oracle.h:59
OracleEnv & m_oe
Creator of this object.
Definition: oracle.h:69
Nexus(OracleEnv &, const char *, const char *, const char *)
Construct by creating a occi::Connection.
Definition: oracle.cpp:36
oracle::occi::Connection * m_conn
Wrapped OCCI object.
Definition: oracle.h:70
~Nexus(void)
Destroy by freeing the occi::Connection.
Definition: oracle.cpp:44
Encapsulate the occi::Environment class.
Definition: oracle.h:40
oracle::occi::Environment * m_env
Wrapped OCCI object.
Definition: oracle.h:49
~OracleEnv(void)
Destroy by freeing the occi::Environment.
Definition: oracle.cpp:27
OracleEnv(bool=false)
Construct by creating the occi::Environment.
Definition: oracle.cpp:20
Encapsulate the occi::ResultSet class.
Definition: oracle.h:102
oracle::occi::ResultSet * m_rs
Wrapped OCCI object.
Definition: oracle.h:111
Results(SQL &, const char *=0)
Construct by creating occi::ResultSet from query.
Definition: oracle.cpp:74
~Results(void)
Destroy by freeing the occi::ResultSet.
Definition: oracle.cpp:82
SQL & m_sql
Creator of this object.
Definition: oracle.h:112
Encapsulate the occi::Statement class.
Definition: oracle.h:80
~SQL(void)
Destroy by freeing the occi::Statement.
Definition: oracle.cpp:57
oracle::occi::Statement * m_stmt
Wrapped OCCI object.
Definition: oracle.h:91
unsigned Modify(const char *=0)
Execute a SQL DDL/DML statement (no result set returned).
Definition: oracle.cpp:63
Nexus & m_nexus
Creator of this object.
Definition: oracle.h:92
SQL(Nexus &, const char *=0)
Construct by creating the occi::Statement.
Definition: oracle.cpp:50
Oracle OCCI wrapper classes.
Definition: oracle.cpp:15