1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_dbms_oracle_Connection_hpp
10 #define anna_dbms_oracle_Connection_hpp
16 #include <anna/dbms/Connection.hpp>
17 #include <anna/dbms/DatabaseException.hpp>
30 Clase que modela la conexion con el RDBMS Oracle (tm).
32 Esta clase no puede usarse directamente, ya que la capa ANNA.dbms obliga a que todas las peticiones
33 se hagan atraves de una instancia anna::dbms::Connection.
35 Para obtener una conexion a una determinada base de datos habra que instanciar dicha base de datos
36 e invocar al metodo createConnection. Independientemente del tipo de conexion particular que la
37 base de datos retorne, debemos asignarlo a un puntero de tipo anna::dbms::Connection.
39 class Connection : public dbms::Connection {
42 Devuelve una cadena con la informacion referente a esta instancia.
43 @return Una cadena con la informacion referente a esta instancia.
45 std::string asString() const ;
48 Operador de conversion.
49 \return El puntero al contexto asociado a este conexion.
51 operator OCISvcCtx*() { return a_context; }
54 Database& a_oracleDatabase;
56 OCISession* a_session;
59 Connection(Database& database, const std::string& name, const char* user, const char* password);
60 bool isAvailable() const noexcept(false) { return a_context != NULL && a_session != NULL && a_server != NULL; }
61 void do_commit() noexcept(false);
63 void open() noexcept(false);
66 friend class anna::dbms::oracle::Database;