X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbms%2FResultCode.hpp;fp=include%2Fanna%2Fdbms%2FResultCode.hpp;h=0000000000000000000000000000000000000000;hb=851ff2962362fd5bad874e8ed91445b296eaca24;hp=64895945f856bec6e84c35f4befdd2153d8e30fa;hpb=78be86969d2f26a9084b0c4af6ce43d5fa4ed3fd;p=anna.git diff --git a/include/anna/dbms/ResultCode.hpp b/include/anna/dbms/ResultCode.hpp deleted file mode 100644 index 6489594..0000000 --- a/include/anna/dbms/ResultCode.hpp +++ /dev/null @@ -1,172 +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_ResultCode_hpp -#define anna_dbms_ResultCode_hpp - -#include - -#include - -#include - -#include -#include - -namespace anna { - -namespace dbms { - -/** - Clase para acceder a la informacion devuelta por el gestor de base de datos - referente al ultimo comando realizado. - */ -class ResultCode { -public: - /** - Constructor vacio. - \warning Antes de usarse debe asignarse a algun otro ResultCode obtenido mediante la invocacion - a anna::dbms::Connection::execute. - */ - ResultCode() : a_errorText(NULL), a_errorDecoder(NULL), a_errorCode(0) {;} - - /** - Constructor copia. - @param other Instancia de la que copiar los datos. - */ - ResultCode(const ResultCode& other) : - a_errorText(NULL), - a_errorDecoder(other.a_errorDecoder) { - set(other.a_errorCode, other.a_errorText); - } - - /** - Destructor. - */ - virtual ~ResultCode() { if(a_errorText != NULL) free(a_errorText); } - - /** - Devuelve el codigo de error del ultimo comando ejecutado contra la base de datos. - @return El codigo de error del ultimo comando ejecutado contra la base de datos. - */ - int getErrorCode() const throw() { return a_errorCode; } - - /** - Devuelve el texto del error del ultimo comando ejecutado contra la base de datos. - @return El texto del error del ultimo comando ejecutado contra la base de datos. - */ - const char* getErrorText() const throw() { return (a_errorText != NULL) ? a_errorText : ""; } - - // Operadores - /** - Operador copia. - @param resultCode Instancia a copiar. - @return Una instancia de si mismo. - */ - ResultCode& operator = (const ResultCode& resultCode) - throw() { - if(this != &resultCode) { - a_errorDecoder = resultCode.a_errorDecoder; - set(resultCode.a_errorCode, resultCode.a_errorText); - } - - return *this; - } - - /** - Devuelve \em true si las condiciones de busqueda de la ultimo operacion - no han sido satisfechas por ningun registro o \em false en otro caso. - @return \em true si las condiciones de busqueda de la ultimo operacion - no han sido satisfechas por ningun registro o \em false en otro caso. - */ - bool notFound() const throw(anna::RuntimeException); - - /** - Devuelve \em true si la ultima operacion solicitada fue realizada correctamente - o \em false en otro caso. - @return \em true si la ultima operacion solicitada fue realizada correctamente - o \em false en otro caso. - */ - bool successful() const throw(anna::RuntimeException); - - /** - Devuelve \em true Si el registro obtenenido en una sentencia de seleccion con indicador - de modo exclusivo ha sido bloqueada previamente por otro proceso y/o contexto de base de - datos o \em false en otro caso. - @return \em true Si el registro obtenenido en una sentencia de seleccion con indicador - de modo exclusivo ha sido bloqueada previamente por otro proceso y/o contexto de base de - datos o \em false en otro caso. - */ - bool locked() const throw(anna::RuntimeException); - - /** - Devuelve \em true si se perdio la conexion la base de datos o \em false en otro caso. - @return \em true si se perdio la conexion la base de datos o \em false en otro caso. - */ - bool lostConnection() const throw(anna::RuntimeException); - - /** - Devuelve una cadena con la informacion sobre esta clase. - \return Una cadena con la informacion sobre esta clase. - */ - std::string asString() const throw(); - -protected: - static const int MaxErrorLen = 512; - - /** - Decodificador del error devuelto por el RDBMS concreto que estemos usando. - \warning Exclusivamente uso interno. - */ - class ErrorDecoder { - public: - virtual bool notFound(const int errorCode) const throw() = 0; - virtual bool successful(const int errorCode) const throw() = 0; - virtual bool locked(const int errorCode) const throw() = 0; - virtual bool lostConnection(const int errorCode) const throw() = 0; - }; - - /** - Constructor. - - \param errorCode Codigo de error asociado a la ultima operacion realizada contra la base de datos. - \param errorText Texto asociado al error de ultima operacion realizada contra la base de datos. Puede ser - NULL si no hay ningun texto de error asociado al codigo recibido. - \param errorDecoder Decofidicador de errores. - */ - ResultCode(const int errorCode, const char* errorText, const ErrorDecoder* errorDecoder) : - a_errorText(NULL), - a_errorDecoder(errorDecoder) { - set(errorCode, errorText); - } - - /** - Establece el contenido de esta clase. - - \param errorCode Codigo de error asociado a la ultima operacion realizada contra la base de datos. - \param errorText Texto asociado al error de ultima operacion realizada contra la base de datos. - */ - void set(const int errorCode, const char* errorText) - throw() { - a_errorCode = errorCode; - copy(errorText); - } - -private: - int a_errorCode; - char* a_errorText; - const ErrorDecoder* a_errorDecoder; - - void copy(const char* text) throw(); -}; - -} -} - -#endif -