X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbms%2FStatement.hpp;h=bd2455918f5cb9e7721e2360910bd038854a778a;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=7cf28ba00d6e3121f61a3fc57c078625a29f4f2f;hpb=3e258840b15577cb8bda3cdedd0b9b88e16404b3;p=anna.git diff --git a/include/anna/dbms/Statement.hpp b/include/anna/dbms/Statement.hpp index 7cf28ba..bd24559 100644 --- a/include/anna/dbms/Statement.hpp +++ b/include/anna/dbms/Statement.hpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not Nothingness Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// https://bitbucket.org/testillano/anna -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Authors: eduardo.ramos.testillano@gmail.com -// cisco.tierra@gmail.com +// 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_Statement_hpp @@ -82,13 +54,13 @@ public: Devuelve el nombre logico de esta sentencia. \return El nombre logico de esta sentencia. */ - const std::string& getName() const throw() { return a_name; } + const std::string& getName() const { return a_name; } /** Devuelve la expresion SQL recibida en el constructor. \return La expresion SQL recibida en el constructor. */ - const std::string& getExpression() const throw() { return a_expression; } + const std::string& getExpression() const { return a_expression; } /** Devuelve el indicador de criticidad, si vale \em true indica que si la ejecucion de esta sentencia @@ -97,13 +69,13 @@ public: Solo aplicara en sentencias que no sean de seleccion. \return El indicador de criticidad de esta sentencia. */ - bool isCritical() const throw() { return a_isCritical; } + bool isCritical() const { return a_isCritical; } /** Devuelve la instancia de la base de datos asociada a esta sentencia. \return La instancia de la base de datos asociada a la sentencia. */ - Database& getDatabase() const throw() { return a_database; } + Database& getDatabase() const { return a_database; } /** Establece el parametro de entrada de la sentencia SQL.Cada una de las variables de entrada indicadas @@ -125,7 +97,7 @@ public: \param data Variable que deseamos asociar como variable de entrada. La correspondencia entre esta y la sentencia SQL vendra dada por el orden de declaracion. */ - void bindInput(const char* name, Data& data) throw(); + void bindInput(const char* name, Data& data) ; /** Establece el parametro de salida de la sentencia SQL.Cada una de las variables de salida indicadas @@ -152,13 +124,13 @@ public: \warning Solo las sentencias SQL del tipo \em select usan las variables de salida. */ - const dbms::OutputBind* bindOutput(const char* name, Data& data) throw(); + const dbms::OutputBind* bindOutput(const char* name, Data& data) ; /** Establece el valor del indicador que activa/desactiva la necesidad de invocar al \em commit y/o \em rollback despues de ejecutar esta sentencia. */ - void setRequiresCommit(const bool requiresCommit) throw() { a_requiresCommit = requiresCommit; } + void setRequiresCommit(const bool requiresCommit) { a_requiresCommit = requiresCommit; } /** Devuelve \em true si la sentencia requiere la invocacion a \em commit o \em rollback @@ -166,56 +138,56 @@ public: de salida (insert, update o delete) o bien porque se haya activado el indicador correspondiente mediante la llamada #setRequiresCommit */ - bool requiresCommit() const throw() { return (a_requiresCommit == true) || (a_outputBinds.empty() == true); } + bool requiresCommit() const { return (a_requiresCommit == true) || (a_outputBinds.empty() == true); } /** Devuelve el iterador que apunta a la primera variable de entrada. \return el iterador que apunta a la primera variable de entrada. */ - input_iterator input_begin() throw() { return a_inputBinds.begin(); } + input_iterator input_begin() { return a_inputBinds.begin(); } /** Devuelve el iterador que apunta a la primera variable de entrada. \return el iterador que apunta a la primera variable de entrada. */ - input_iterator input_end() throw() { return a_inputBinds.end(); } + input_iterator input_end() { return a_inputBinds.end(); } /** Devuelve el numero de variables de entrada asociado a esta sentencia SQL. \return el numero de variables de entrada asociado a esta sentencia SQL. */ - int input_size() const throw() { return a_inputBinds.size(); } + int input_size() const { return a_inputBinds.size(); } /** Devuelve el iterador que apunta a la primera variable de salida. \return el iterador que apunta a la primera variable de salida. */ - output_iterator output_begin() throw() { return a_outputBinds.begin(); } + output_iterator output_begin() { return a_outputBinds.begin(); } /** Devuelve el iterador que apunta a la primera variable de salida. \return el iterador que apunta a la primera variable de salida. */ - output_iterator output_end() throw() { return a_outputBinds.end(); } + output_iterator output_end() { return a_outputBinds.end(); } /** Devuelve el numero de variables de entrada asociado a esta sentencia SQL. \return el numero de variables de entrada asociado a esta sentencia SQL. */ - int output_size() const throw() { return a_outputBinds.size(); } + int output_size() const { return a_outputBinds.size(); } /** Devuelve un documento XML con la informacion referente a esta instancia. \param parent Nodo XML del que debe colgar la informacion. @return un documento XML con la informacion referente a esta instancia. */ - virtual xml::Node* asXML(xml::Node* parent) const throw(); + virtual xml::Node* asXML(xml::Node* parent) const ; /** 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(); + virtual std::string asString() const ; /** Transfiere la informacion de una fila de la sentencia SQL de seleccion a las @@ -224,19 +196,19 @@ public: \return \em true si el registro ha sido transferido a las variables de salida o \em false si habiamos llegado al ultimo registro de la seleccion. */ - virtual bool fetch() throw(RuntimeException, DatabaseException) = 0; + virtual bool fetch() noexcept(false) = 0; /** Devuelve la variable de entrada apuntada por el iterador recibido como parametro. \return la variable de entrada apuntada por el iterador recibido como parametro. */ - static Data& input(input_iterator& ii) throw(); + static Data& input(input_iterator& ii) ; /** Devuelve la variable de salida apuntada por el iterador recibido como parametro. \return la variable de salida apuntada por el iterador recibido como parametro. */ - static Data& output(output_iterator& ii) throw(); + static Data& output(output_iterator& ii) ; protected: /** @@ -284,13 +256,13 @@ protected: Devuelve la referencia de entrada apuntada por el iterador recibido como parametro. \return la referencia de entrada apuntada por el iterador recibido como parametro. */ - static InputBind* inputBind(input_iterator& ii) throw() { return *ii; } + static InputBind* inputBind(input_iterator& ii) { return *ii; } /** Devuelve la referencia de salida apuntada por el iterador recibido como parametro. \return la referencia de salida apuntada por el iterador recibido como parametro. */ - static OutputBind* outputBind(output_iterator& ii) throw() { return *ii; } + static OutputBind* outputBind(output_iterator& ii) { return *ii; } private: Database& a_database; @@ -304,10 +276,10 @@ private: bool a_requiresCommit; Statement(const Statement&); - void measureTiming(const Microsecond & init, const Microsecond & end) throw() { a_measureTiming += (end - init); } + void measureTiming(const Microsecond & init, const Microsecond & end) { a_measureTiming += (end - init); } - virtual void prepare(Connection* connection) throw(RuntimeException, DatabaseException) = 0; - virtual ResultCode execute(Connection* connection) throw(RuntimeException, DatabaseException) = 0; + virtual void prepare(Connection* connection) noexcept(false) = 0; + virtual ResultCode execute(Connection* connection) noexcept(false) = 0; friend class Connection; friend class Database;