1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_dbms_LongBlock_hpp
10 #define anna_dbms_LongBlock_hpp
14 #include <anna/core/RuntimeException.hpp>
15 #include <anna/core/DataBlock.hpp>
17 #include <anna/dbms/Data.hpp>
24 Bloque de datos usado como entrada y/o salida de las sentencias SQL.
26 A diferencia del tipo de datos ShortBlock, en principio, no tiene ninguna limitacion
27 en cuanto a la longitud del campo que vamos a tratar. Por contra, dependiendo del motor
28 de base de datos que vayamos a usar puede tener un tratamiento especial a la hora de
29 grabarlo en la base de datos.
33 class LongBlock : public Data {
37 \param isNulleable Indica si el dato puede tomar valores nulos.
39 explicit LongBlock(const bool isNulleable = false) :
40 Data(Type::LongBlock, 0, isNulleable),
42 Data::setBuffer((void*) NULL);
47 \param other Instancia de la que copiar.
49 LongBlock(const LongBlock& other) :
52 a_value = other.a_value;
58 virtual ~LongBlock() {;}
61 Devuelve el tamao actual de este dato.
62 \return El tamao actual de este dato.
64 int getSize() const { return a_value.getSize(); }
67 Devuelve el contenido de la este bloque de memoria.
68 \return Devuelve el contenido de la este bloque de memoria.
69 \warning Si el metodo Data::isNull devolvio \em true el resultado de este metodo no esta definido.
71 const anna::DataBlock& getValue() const { return a_value; }
74 Devuelve el contenido de la este bloque de memoria.
75 \return Devuelve el contenido de la este bloque de memoria.
76 \warning Si el metodo Data::isNull devolvio \em true el resultado de este metodo no esta definido.
78 anna::DataBlock& getValue() { return a_value; }
81 Operador de asignacin.
82 \param other Bloque del que copiar.
83 \return La instancia de este bloque de memoria.
85 LongBlock& operator = (const LongBlock& other) noexcept(false);
88 Operador de asignacin.
89 \param value Valor que queremos a asignar.
90 \return La instancia de esta cadena.
92 LongBlock& operator = (const anna::DataBlock& value) noexcept(false);
95 Operador de conversion.
96 \return El anna::DataBlock asociado a esta instancia.
98 operator anna::DataBlock& () { return a_value; }
101 Operador de conversion.
102 \return El anna::DataBlock asociado a esta instancia.
104 operator const anna::DataBlock& () const { return a_value; }
107 Devuelve una cadena con la informacion referente a esta instancia.
108 \return Una cadena con la informacion referente a esta instancia.
110 std::string asString() const ;
113 anna::DataBlock a_value;
115 void do_clear() { a_value.clear(); }