--- /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_DatabaseException_hpp
+#define anna_dbms_DatabaseException_hpp
+
+#include <anna/core/Exception.hpp>
+
+#include <anna/dbms/ResultCode.hpp>
+
+namespace anna {
+
+namespace dbms {
+
+/**
+ Exception ocurrida al acceder a algun servicio de la base de datos.
+*/
+class DatabaseException : public Exception {
+public:
+ /**
+ Constructor.
+
+ @param resultCode Clase utilizada para transferir codigo de error entre el gestor de base de datos
+ y nuestro programa. Entre otra informacion contiene el error ocurrido en la ultima operacion realizada.
+ @param fromFile Fichero en el que se provoco la situacion de error.
+ @param fromLine Linea del fichero en la que se provoco la situacion de error.
+ */
+ DatabaseException(const ResultCode& resultCode, const char* fromFile, const int fromLine) :
+ Exception(resultCode.getErrorText(), "DatabaseException", fromFile, fromLine),
+ a_resultCode(resultCode) {}
+
+ /**
+ Constructor.
+
+ @param logicalName Nombre logico del elemento que genera la excepcion.
+ @param resultCode Clase utilizada para transferir codigo de error entre el gestor de base de datos
+ y nuestro programa. Entre otra informacion contiene el error ocurrido en la ultima operacion realizada.
+ @param fromFile Fichero en el que se provoco la situacion de error.
+ @param fromLine Linea del fichero en la que se provoco la situacion de error.
+ */
+ DatabaseException(const std::string& logicalName, const ResultCode& resultCode, const char* fromFile, const int fromLine) :
+ Exception("", "DatabaseException", fromFile, fromLine),
+ a_resultCode(resultCode) {
+ std::string aux(logicalName);
+ aux += ": ";
+ aux += resultCode.getErrorText();
+ setText(aux.c_str());
+ }
+
+ /**
+ Destructor.
+ */
+ virtual ~DatabaseException() throw() {;}
+
+ /**
+ Devuelve el resultado de base de datos asociado a la excepcion
+
+ @return El resultado de base de datos asociado a la excepcion
+ */
+ const ResultCode& getResultCode() const throw() { return a_resultCode; }
+
+private:
+ const ResultCode a_resultCode;
+};
+
+}
+}
+
+
+#endif
+