X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbms%2FSentence.hpp;fp=include%2Fanna%2Fdbms%2FSentence.hpp;h=0000000000000000000000000000000000000000;hb=a3b95648bd76140ef55e0b5941d423eee6c3856f;hp=39d045e4fae23dde31ff6e6f9732ada7d833537c;hpb=94fc4366adedbf26ca6ef3104f88d41fa85f5a72;p=anna.git diff --git a/include/anna/dbms/Sentence.hpp b/include/anna/dbms/Sentence.hpp deleted file mode 100644 index 39d045e..0000000 --- a/include/anna/dbms/Sentence.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// 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_Sentence_hpp -#define anna_dbms_Sentence_hpp - -#include - -#include - -namespace anna { - -namespace xml { -class Node; -} - -namespace dbms { - -class Database; -class Connection; -class Statement; - -/** - Clase que facilita la ejecucion de sentencias SQL compuestas y la comprobacion de errores ya que - solo devuelve excepciones de tipo anna::RuntimeException. -*/ -class Sentence : public Mutex { -public: - /** - Modos de actuar cuando se detecta un error en la ejecucion de las sentencias SQL. - \see Sentence - */ - struct Mode { enum _v { ExceptionWhenNotFound, SilentWhenNotFound }; }; - - /** - Ejecuta la sentencia SQL asociada a este instancia. Antes de invocar a este metodo debemos - activar una seccion critica sobre esta instancia. - \param connection Conexion usada para ejecutar la sentencia. Debe tener activa una seccion critica. - */ - virtual dbms::ResultCode execute(dbms::Connection& connection) throw(RuntimeException) { - return execute(connection, a_dbStatement); - } - - /** - Devuelve el nombre de la sentencia SQL asociada a esta instancia. - \return El nombre de la sentencia SQL asociada a esta instancia. - \warning Si todavia no tiene nombre asociado devolvera una cadena vacia. - */ - const std::string& getName() const throw(); - - /** - Inicializa el estado de esta instancia - \param database Instancia de la base de datos usada para definir las sentencias SQL que componen esta - instancia. - */ - void initialize(dbms::Database& database) throw(RuntimeException); - - /** - Transfiere un registro desde la base de datos a las variables del entorno C++. - \return \em false si no hay mas registros o \em true en caso contrario. - */ - bool fetch() throw(RuntimeException); - - /** - Transfiere un registro desde la base de datos a las variables del entorno C++. - \param resultCode Variable que contiene el resultado de invocar a anna::dbms::Sentence::execute - \return \em false si no hay mas registros o \em true en caso contrario. - */ - bool fetch(const ResultCode& resultCode) throw(RuntimeException) { - return (resultCode.successful() == true) ? fetch() : false; - } - - /** - Devuelve una cadena con la informacion referente a esta instancia. - \return una cadena con la informacion referente a esta instancia. - */ - virtual std::string asString() const throw(); - - /** - Devuelve un documento XML con la informacion referente a esta instancia. - \param parent Nodo XML del que dependerá la información referente a esta instancia. - \return un documento XML con la informacion referente a esta instancia. - */ - virtual xml::Node* asXML(xml::Node* parent) const throw(); - -protected: - /** - Constructor. - \param mode Modo de actuacion en caso de detectar errores. - */ - Sentence(const Mode::_v mode = Mode::ExceptionWhenNotFound) : - a_mode(mode), a_dbStatement(NULL) - {;} - - /** - Ejecuta la sentencia SQL asociada a este instancia. - \param connection Conexion usada para ejecutar la sentencia. Debe tener activa una seccion critica. - \param statement Sentencia a ejecutar. - */ - dbms::ResultCode execute(dbms::Connection& connection, dbms::Statement* statement) throw(RuntimeException); - - /** - Metodo que debe inicializar las sentencias asociadas a esta instancia (valores de entrada y salida). - \return Retorna la instancia de la sentencia asociada a esta instancia debidamente inicializada. - */ - virtual dbms::Statement* do_initialize(dbms::Database&) throw(RuntimeException) = 0; - -private: - const Mode::_v a_mode; - dbms::Statement* a_dbStatement; -}; - -} -} - -#endif -