+++ /dev/null
-// ANNA - Anna is Not Nothingness Anymore //
-// //
-// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
-// //
-// See project site at http://redmine.teslayout.com/projects/anna-suite //
-// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
-
-
-#ifndef anna_dbms_mysql_Database_hpp
-#define anna_dbms_mysql_Database_hpp
-
-#include <anna/dbms/Database.hpp>
-#include <anna/dbms/DatabaseException.hpp>
-
-namespace anna {
-
-namespace dbms {
-
-namespace mysql {
-
-/**
- Clase que modela la interaccion entre la RDMS MySQL (tm) y nuestra aplicacion.
-*/
-class Database : public dbms::Database {
-public:
- /**
- Contructor.
- \param dbmsName Nombre de la base de datos.
- \param host Identificador de la máquina anfitriona, que se usará para hacer las conexiones. Puede ser NULL.
- \see http://dev.mysql.com/doc/refman/4.1/en/mysql-real-connect.html
- */
- Database(const char* dbmsName, const char* host);
-
- /**
- Contructor.
- \param componentName Nombre logico de la base de datos por que el podemos buscar este componente.
- \param dbmsName Nombre de la base de datos.
- \param host Identificador de la máquina anfitriona, que se usará para hacer las conexiones. Puede ser NULL.
- \see http://dev.mysql.com/doc/refman/4.1/en/mysql-real-connect.html
- */
- Database(const char* componentName, const char* dbmsName, const char* host);
-
- /**
- Destructor.
- */
- virtual ~Database();
-
- /**
- * Devuelve el nombre de la máquina anfitriona indicado en el constructor.
- * \return El nombre de la máquina anfitriona indicado en el constructor.
- */
- const char* getHost() const throw() { return a_host; }
-
- /**
- Devuelve la cadena por la que podemos buscar el componente.
- \return La cadena por la que podemos buscar el componente.
- \see Application::find
- */
- static const char* getClassName() { return "anna::dbms::mysql::Database"; }
-
-private:
- char* a_host;
-
- void do_initialize() throw(RuntimeException);
-
- dbms::Connection* allocateConnection(const std::string& name, const char* user, const char* password)
- throw(RuntimeException);
-
- dbms::Statement* allocateStatement(const char* name, const std::string& expression, const bool isCritical)
- throw(RuntimeException);
-
- dbms::InputBind* allocateInputBind(const char* name, Data&)
- throw(RuntimeException);
- void deallocate(dbms::InputBind* inputBind) throw();
-
- dbms::OutputBind* allocateOutputBind(const char* name, Data&)
- throw(RuntimeException);
- void deallocate(dbms::OutputBind* outputBind) throw();
-};
-
-#ifdef ANNA_RDBMS_TRACE
-#define anna_dbms_mysql_check(a,_mysql) \
- { \
- Logger::write (Logger::Debug, (#a), __FILE__, __LINE__); \
- const int status = (a); \
- if (status != 0) { \
- anna::dbms::mysql::ResultCode resultCode ((_mysql)); \
- throw DatabaseException (resultCode, __FILE__, __LINE__); \
- } \
- }
-#else
-#define anna_dbms_mysql_check(a,_mysql) \
- { \
- const int status = (a); \
- if (status != 0) { \
- anna::dbms::mysql::ResultCode resultCode ((_mysql)); \
- throw DatabaseException (resultCode, __FILE__, __LINE__); \
- } \
- }
-#endif
-}
-}
-}
-
-#endif