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_oracle_OutputBind_hpp
10 #define anna_dbms_oracle_OutputBind_hpp
12 #include <anna/dbms/OutputBind.hpp>
14 #include <anna/dbms.oracle/BaseBind.hpp>
26 class OutputBind : public dbms::OutputBind, public BaseBind {
28 OutputBind(const char* name, dbms::Data& data);
32 OCIDefine* a_ociDefine;
34 void decode() const noexcept(false);
35 void prepare(dbms::Statement*, dbms::Connection*, const int pos) noexcept(false);
36 void release(dbms::Statement*) { a_ociDefine = NULL; }
38 void decodeFloat(dbms::Data&) const noexcept(false);
39 void decodeShortBlock(dbms::Data&) const noexcept(false);
40 void decodeLongBlock(dbms::Data&) const noexcept(false);
41 void decodeDate(dbms::Data&) const noexcept(false);
43 void do_write(const dbms::LongBlock&) const noexcept(false);
45 static unsigned char asByte(const char hex)
47 return (hex >= '0' && hex <= '9') ? (hex - '0') : ((hex - 'A') + 0x0a);
50 friend class Statement;