oralib  0.0.2
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 
33 extern const char *Version;
34 
41 class OracleEnv
42 { friend class Nexus;
43  public:
44  OracleEnv(bool=false);
45  OracleEnv(const OracleEnv &)=delete;
46  const OracleEnv & operator = (const OracleEnv &)=delete;
47  ~OracleEnv(void);
48  oracle::occi::Environment & operator() (void) { return *m_env; }
49 
50  protected:
51  oracle::occi::Environment *m_env;
52 };
53 
54 
60 class Nexus
61 { friend class SQL;
62  friend class OracleEnv;
63  public:
64  explicit Nexus(OracleEnv &, const char *, const char *, const char *);
65  Nexus(const Nexus &)=delete;
66  const Nexus & operator = (const Nexus &)=delete;
67  ~Nexus(void);
68  oracle::occi::Connection & operator () (void) { return *m_conn; }
69 
70  protected:
72  oracle::occi::Connection *m_conn;
73 };
74 
75 
81 class SQL
82 { friend class Nexus;
83  friend class Results;
84  public:
85  explicit SQL(Nexus &, const char * = 0);
86  SQL(const SQL &)=delete;
87  const SQL & operator = (const SQL &)=delete;
88  ~SQL(void);
89  oracle::occi::Statement & operator() (void) { return *m_stmt; }
90  unsigned Modify(const char * = 0);
91 
92  protected:
93  oracle::occi::Statement *m_stmt;
95 };
96 
97 
103 class Results
104 { friend class SQL;
105  public:
106  explicit Results(SQL &, const char * = 0);
107  Results(const Results &)=delete;
108  const Results & operator = (const Results &)=delete;
109  ~Results(void);
110  oracle::occi::ResultSet & operator() (void) { return *m_rs; }
111 
112  protected:
113  oracle::occi::ResultSet *m_rs;
115 };
116 
117 }
118 
119 #endif
Encapsulate the occi::Connection class.
Definition: oracle.h:61
OracleEnv & m_oe
Creator of this object.
Definition: oracle.h:71
Nexus(OracleEnv &, const char *, const char *, const char *)
Construct by creating a occi::Connection.
Definition: oracle.cpp:43
oracle::occi::Connection * m_conn
Wrapped OCCI object.
Definition: oracle.h:72
~Nexus(void)
Destroy by freeing the occi::Connection.
Definition: oracle.cpp:53
Encapsulate the occi::Environment class.
Definition: oracle.h:42
oracle::occi::Environment * m_env
Wrapped OCCI object.
Definition: oracle.h:51
~OracleEnv(void)
Destroy by freeing the occi::Environment.
Definition: oracle.cpp:30
OracleEnv(bool=false)
Construct by creating the occi::Environment.
Definition: oracle.cpp:21
Encapsulate the occi::ResultSet class.
Definition: oracle.h:104
oracle::occi::ResultSet * m_rs
Wrapped OCCI object.
Definition: oracle.h:113
Results(SQL &, const char *=0)
Construct by creating occi::ResultSet from query.
Definition: oracle.cpp:95
~Results(void)
Destroy by freeing the occi::ResultSet.
Definition: oracle.cpp:105
SQL & m_sql
Creator of this object.
Definition: oracle.h:114
Encapsulate the occi::Statement class.
Definition: oracle.h:82
~SQL(void)
Destroy by freeing the occi::Statement.
Definition: oracle.cpp:72
oracle::occi::Statement * m_stmt
Wrapped OCCI object.
Definition: oracle.h:93
unsigned Modify(const char *=0)
Execute a SQL DDL/DML statement (no result set returned).
Definition: oracle.cpp:82
Nexus & m_nexus
Creator of this object.
Definition: oracle.h:94
SQL(Nexus &, const char *=0)
Construct by creating the occi::Statement.
Definition: oracle.cpp:63
Oracle OCCI wrapper classes.
Definition: oracle.cpp:14