ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <Statement.hpp>
Public Types | |
typedef std::vector< InputBind * >::iterator | input_iterator |
typedef std::vector< OutputBind * >::iterator | output_iterator |
Public Member Functions | |
virtual | ~Statement () |
const std::string & | getName () const |
const std::string & | getExpression () const |
bool | isCritical () const |
Database & | getDatabase () const |
void | bindInput (const char *name, Data &data) |
const dbms::OutputBind * | bindOutput (const char *name, Data &data) |
void | setRequiresCommit (const bool requiresCommit) |
bool | requiresCommit () const |
input_iterator | input_begin () |
input_iterator | input_end () |
int | input_size () const |
output_iterator | output_begin () |
output_iterator | output_end () |
int | output_size () const |
virtual xml::Node * | asXML (xml::Node *parent) const |
virtual std::string | asString () const |
virtual bool | fetch () noexcept(false)=0 |
![]() | |
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 | |
Static Public Member Functions | |
static Data & | input (input_iterator &ii) |
static Data & | output (output_iterator &ii) |
Protected Member Functions | |
Statement (Database &database, const char *name, const char *expression, const bool isCritical) | |
Statement (Database &database, const char *name, const std::string &expression, const bool isCritical) | |
![]() | |
Safe () | |
Static Protected Member Functions | |
static InputBind * | inputBind (input_iterator &ii) |
static OutputBind * | outputBind (output_iterator &ii) |
Friends | |
class | Connection |
class | Database |
Clase que facilita la ejecucion de sentencias SQL.
Para obtener la instancia de un comando para una determinada base de datos habra que instanciar dicha base de datos e invocar al metodo Database::createStatement. Independientemente del tipo de comando particular que la base de datos retorne, debemos asignarlo a un puntero de tipo anna::dbms::Statement.
typedef std::vector<InputBind*>::iterator anna::dbms::Statement::input_iterator |
typedef std::vector<OutputBind*>::iterator anna::dbms::Statement::output_iterator |
|
virtual |
Destructor.
Reimplemented in anna::dbms::mysql::Statement, and anna::dbms::oracle::Statement.
|
inlineprotected |
Contructor.
database | Base de datos sobre la que se define la sentencia. |
name | Nombre logico de la sentencia. |
expression | Sentencia SQL asociada a esta clase. |
isCritical | Si vale true indica que si la ejecucion de esta sentencia falla al desbloquear la conexion con la que ejecutamos esta sentencia se invocara a Connection::rollback, en otro caso aunque falle se invocara a Connection::commit. Solo aplicara en sentencias que no sean de seleccion. |
|
inlineprotected |
Contructor.
database | Base de datos sobre la que se define la sentencia. |
name | Nombre logico de la sentencia. |
expression | Sentencia SQL asociada a esta clase. |
isCritical | Si vale true indica que si la ejecucion de esta sentencia falla al desbloquear la conexion con la que ejecutamos esta sentencia se invocara a Connection::rollback, en otro caso aunque falle se invocara a Connection::commit. Solo aplicara en cuenta en sentencias que no sean de seleccion. |
|
virtual |
Devuelve una cadena con la informacion referente a esta instancia.
Devuelve un documento XML con la informacion referente a esta instancia.
parent | Nodo XML del que debe colgar la informacion. |
void anna::dbms::Statement::bindInput | ( | const char * | name, |
Data & | data | ||
) |
Establece el parametro de entrada de la sentencia SQL.Cada una de las variables de entrada indicadas en esta sentencia SQL deberia tener un parametro de entrada asociado. La correspondencia entre esta variable y la sentencia SQL vendra dada por el orden de aparacion en la sentencia SQL y por el orden de definicion del parametro.
Por ejemplo la sentencia:
Cada una de las variables unavariable y otravariable debera tener asociado una variable de entrada. Primero debemos indicaremos la correspondiente a unavariable y luego la correspondiente a otravariable.
name | Nombre logico de esta variable. No tiene porque tener ninguna correspondencia con el nombre de la columna. |
data | Variable que deseamos asociar como variable de entrada. La correspondencia entre esta y la sentencia SQL vendra dada por el orden de declaracion. |
const dbms::OutputBind* anna::dbms::Statement::bindOutput | ( | const char * | name, |
Data & | data | ||
) |
Establece el parametro de salida de la sentencia SQL.Cada una de las variables de salida indicadas en esta sentencia SQL deberia tener un parametro de salida asociado. La correspondencia entre esta variable y la sentencia SQL vendra dada por el orden de aparacion en la sentencia SQL y por el orden de definicion del parametro.
Por ejemplo la sentencia:
Cada una de las variables xx e yy debera tener asociado una variable de salida. Ademas la variable unavaraible debera tener asociada una variable de entrada.
name | Nombre logico de esta variable. No tiene porque tener ninguna correspondencia con el nombre de la columna. |
data | Variable que deseamos asociar como variable de salida. La correspondencia entre esta y la sentencia SQL vendra dada por el orden de declaracion. |
|
pure virtualnoexcept |
Transfiere la informacion de una fila de la sentencia SQL de seleccion a las variables de salida asociadas a la sentencia.
|
inline |
|
inline |
|
inline |
|
static |
Devuelve la variable de entrada apuntada por el iterador recibido como parametro.
|
inline |
|
inline |
|
inline |
|
inlinestaticprotected |
|
inline |
Devuelve el indicador de criticidad, si vale true indica que si la ejecucion de esta sentencia falla al desbloquear la conexion con la que ejecutamos esta sentencia se invocara a Connection::rollback, en otro caso aunque falle se invocara a Connection::commit. Solo aplicara en sentencias que no sean de seleccion.
|
static |
Devuelve la variable de salida apuntada por el iterador recibido como parametro.
|
inline |
|
inline |
|
inline |
|
inlinestaticprotected |
|
inline |
Devuelve true si la sentencia requiere la invocacion a commit o rollback tras su ejecucion. Puede devolver true por tratarse de una sentencia que no tiene variables de salida (insert, update o delete) o bien porque se haya activado el indicador correspondiente mediante la llamada setRequiresCommit
|
inline |
Establece el valor del indicador que activa/desactiva la necesidad de invocar al commit y/o rollback despues de ejecutar esta sentencia.
|
friend |
|
friend |