X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbms%2FOutputBind.hpp;fp=include%2Fanna%2Fdbms%2FOutputBind.hpp;h=e0c7c703928998774d1ea24bc287cf316a801e60;hb=78be86969d2f26a9084b0c4af6ce43d5fa4ed3fd;hp=0000000000000000000000000000000000000000;hpb=a3b95648bd76140ef55e0b5941d423eee6c3856f;p=anna.git diff --git a/include/anna/dbms/OutputBind.hpp b/include/anna/dbms/OutputBind.hpp new file mode 100644 index 0000000..e0c7c70 --- /dev/null +++ b/include/anna/dbms/OutputBind.hpp @@ -0,0 +1,53 @@ +// 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_OutputBind_hpp +#define anna_dbms_OutputBind_hpp + +#include + +namespace anna { + +namespace dbms { + +class LongBlock; + +/** + Clase que facilita la interconexion entre las variables del ambito C++ y el ambito RDBMS. + + A continuacion presentamos un ejemplo de uso detallado. + \include db_blob.p/main.cc +*/ +class OutputBind : public Bind { +public: + /** + Graba el valor de la variable anna::dbms::LongBlock asociada a esta OutputBind. Cualquier + modificacion que necesitemos aplicar sobre la columnna de tipo se debera hacer mediante los + metodos ofrecidos por la clase anna::dbms::LongBlock. + + \warning Este metodo solo puede ser usado para variables de tipo dbms::Data::Type::LongBlock y + siempre y cuando hayamos abierto el BLOB con una sentencia SQL de seleccion. + */ + void write() const throw(RuntimeException, dbms::DatabaseException); + +protected: + OutputBind(const char* name, dbms::Data& value) : Bind(name, value) {;} + +private: + // este metodo no sera invocado nunca. A partir de un Output nunca hay que + // convertir de C++ -> RDBMS + void code() const throw(RuntimeException) {;} + + virtual void do_write(const dbms::LongBlock&) const throw(RuntimeException, dbms::DatabaseException) = 0; +}; + +} +} + +#endif +