+++ /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_Statement_hpp
-#define anna_dbms_mysql_Statement_hpp
-
-#include <anna/dbms/Statement.hpp>
-
-#include <anna/dbms.mysql/forward.hpp>
-
-namespace anna {
-
-namespace dbms {
-
-class Connection;
-
-namespace mysql {
-
-class Database;
-
-/**
- Clase que facilita la ejecucion de sentencias SQL a traves del RDBMS MySQL (tm).
-
- Esta clase no puede usarse directamente, ya que la capa ANNA.dbms obliga a que todas las peticiones
- se hagan atraves de una instancia anna::dbms::Statement.
-
- Para obtener la instancia de un comando para una determinada base de datos habra que instanciar
- dicha base de datos e invocar al metodo createStatement. Independientemente del tipo de comando
- particular que la base de datos retorne, debemos asignarlo a un puntero de tipo anna::dbms::Statement.
- */
-class Statement : public dbms::Statement {
-public:
- /**
- Destructor.
- */
- virtual ~Statement();
-
- /**
- Operador de conversion.
- \return El puntero MYSQL_STMT de esta sentencia.
- */
- operator st_mysql_stmt*() throw() { return a_mysqlStmt; }
-
- /**
- * Obtiene el array asociado a los valores de entrada.
- * \return El array asociado a los valores de entrada.
- * \warning Exclusivamente uso interno.
- */
- st_mysql_bind* getBindParams() throw() { return a_params; }
-
- /**
- * Obtiene el array asociado a los valores de salida.
- * \return El array asociado a los valores de salida.
- * \warning Exclusivamente uso interno.
- */
- st_mysql_bind* getBindResults() throw() { return a_results; }
-
-private:
- st_mysql_stmt* a_mysqlStmt;
-
- st_mysql_bind* a_params;
- st_mysql_bind* a_results;
-
- Statement(Database& database, const char* name, const char* expression, const bool isCritical) :
- dbms::Statement(database, name, expression, isCritical),
- a_mysqlStmt(NULL),
- a_params(NULL),
- a_results(NULL) {}
-
- Statement(Database& database, const char* name, const std::string& expression, const bool isCritical) :
- dbms::Statement(database, name, expression, isCritical),
- a_mysqlStmt(NULL),
- a_params(NULL),
- a_results(NULL) {}
-
- st_mysql_bind* create(const int size, const char* whatis) throw(RuntimeException);
-
- void prepare(dbms::Connection* connection) throw(RuntimeException, DatabaseException);
- dbms::ResultCode execute(dbms::Connection* connection) throw(RuntimeException, DatabaseException);
- bool fetch() throw(RuntimeException, DatabaseException);
-
- friend class Database;
-};
-
-}
-}
-}
-
-#endif
-