ANNA Suite  2020b
Multipurpose development suite for Telco applications
Classes | Public Member Functions | Protected Member Functions | List of all members
anna::dbms::Sentence Class Referenceabstract

#include <Sentence.hpp>

Inheritance diagram for anna::dbms::Sentence:
Inheritance graph
[legend]
Collaboration diagram for anna::dbms::Sentence:
Collaboration graph
[legend]

Classes

struct  Mode
 

Public Member Functions

virtual dbms::ResultCode execute (dbms::Connection &connection) noexcept(false)
 
const std::string & getName () const
 
void initialize (dbms::Database &database) noexcept(false)
 
bool fetch () noexcept(false)
 
bool fetch (const ResultCode &resultCode) noexcept(false)
 
virtual std::string asString () const
 
virtual xml::NodeasXML (xml::Node *parent) const
 
- Public Member Functions inherited from anna::Mutex
 Mutex (const Mode::_v mode=Mode::Recursive)
 
virtual ~Mutex ()
 
virtual void lock () noexcept(false)
 
virtual void unlock ()
 
bool trylock () noexcept(false)
 
 operator const pthread_mutex_t * () const
 

Protected Member Functions

 Sentence (const Mode::_v mode=Mode::ExceptionWhenNotFound)
 
dbms::ResultCode execute (dbms::Connection &connection, dbms::Statement *statement) noexcept(false)
 
virtual dbms::Statementdo_initialize (dbms::Database &) noexcept(false)=0
 
- Protected Member Functions inherited from anna::Safe
 Safe ()
 

Detailed Description

Clase que facilita la ejecucion de sentencias SQL compuestas y la comprobacion de errores ya que solo devuelve excepciones de tipo anna::RuntimeException.

Constructor & Destructor Documentation

◆ Sentence()

anna::dbms::Sentence::Sentence ( const Mode::_v  mode = Mode::ExceptionWhenNotFound)
inlineprotected

Constructor.

Parameters
modeModo de actuacion en caso de detectar errores.
96  :
97  a_mode(mode), a_dbStatement(NULL)
98  {;}

Member Function Documentation

◆ asString()

virtual std::string anna::dbms::Sentence::asString ( ) const
virtual

Devuelve una cadena con la informacion referente a esta instancia.

Returns
una cadena con la informacion referente a esta instancia.

◆ asXML()

virtual xml::Node* anna::dbms::Sentence::asXML ( xml::Node parent) const
virtual

Devuelve un documento XML con la informacion referente a esta instancia.

Parameters
parentNodo XML del que dependerá la información referente a esta instancia.
Returns
un documento XML con la informacion referente a esta instancia.

◆ do_initialize()

virtual dbms::Statement* anna::dbms::Sentence::do_initialize ( dbms::Database )
protectedpure virtualnoexcept

Metodo que debe inicializar las sentencias asociadas a esta instancia (valores de entrada y salida).

Returns
Retorna la instancia de la sentencia asociada a esta instancia debidamente inicializada.

◆ execute() [1/2]

virtual dbms::ResultCode anna::dbms::Sentence::execute ( dbms::Connection connection)
inlinevirtualnoexcept

Ejecuta la sentencia SQL asociada a este instancia. Antes de invocar a este metodo debemos activar una seccion critica sobre esta instancia.

Parameters
connectionConexion usada para ejecutar la sentencia. Debe tener activa una seccion critica.
45  {
46  return execute(connection, a_dbStatement);
47  }
virtual dbms::ResultCode execute(dbms::Connection &connection) noexcept(false)
Definition: Sentence.hpp:45

◆ execute() [2/2]

dbms::ResultCode anna::dbms::Sentence::execute ( dbms::Connection connection,
dbms::Statement statement 
)
protectednoexcept

Ejecuta la sentencia SQL asociada a este instancia.

Parameters
connectionConexion usada para ejecutar la sentencia. Debe tener activa una seccion critica.
statementSentencia a ejecutar.

◆ fetch() [1/2]

bool anna::dbms::Sentence::fetch ( )
noexcept

Transfiere un registro desde la base de datos a las variables del entorno C++.

Returns
false si no hay mas registros o true en caso contrario.

◆ fetch() [2/2]

bool anna::dbms::Sentence::fetch ( const ResultCode resultCode)
inlinenoexcept

Transfiere un registro desde la base de datos a las variables del entorno C++.

Parameters
resultCodeVariable que contiene el resultado de invocar a anna::dbms::Sentence::execute
Returns
false si no hay mas registros o true en caso contrario.
74  {
75  return (resultCode.successful() == true) ? fetch() : false;
76  }
bool fetch() noexcept(false)

◆ getName()

const std::string& anna::dbms::Sentence::getName ( ) const

Devuelve el nombre de la sentencia SQL asociada a esta instancia.

Returns
El nombre de la sentencia SQL asociada a esta instancia.
Warning
Si todavia no tiene nombre asociado devolvera una cadena vacia.

◆ initialize()

void anna::dbms::Sentence::initialize ( dbms::Database database)
noexcept

Inicializa el estado de esta instancia

Parameters
databaseInstancia de la base de datos usada para definir las sentencias SQL que componen esta instancia.

The documentation for this class was generated from the following file: