diff options
author | Constantin Michael <constantin@codesynthesis.com> | 2011-10-11 10:12:53 +0200 |
---|---|---|
committer | Constantin Michael <constantin@codesynthesis.com> | 2011-10-21 11:47:13 +0200 |
commit | 3dfcdf2699364d7ded9a69fa20ef8f03aa038478 (patch) | |
tree | abd1a45ff9832958bfedf7b95f06e5f095356e46 | |
parent | ec41399d1e465f718b8d3ea4a1c59b910486e7a6 (diff) |
Use an auto_descriptor to manage a bound result LOB
-rw-r--r-- | odb/relational/oracle/header.cxx | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/odb/relational/oracle/header.cxx b/odb/relational/oracle/header.cxx index a203d35..b6a25b7 100644 --- a/odb/relational/oracle/header.cxx +++ b/odb/relational/oracle/header.cxx @@ -16,6 +16,23 @@ namespace relational { namespace relational = relational::header; + struct class1: relational::class1 + { + class1 (base const& x): base (x) {} + + virtual void + object_public_extra_post (type& c) + { + if (abstract (c)) + return; + + os << "static const bool auto_id = " << + (id_member (c)->count ("auto") ? "true;" : "false;") + << endl; + } + }; + entry<class1> class1_entry_; + struct image_member: relational::image_member, member_base { image_member (base const& x) @@ -170,7 +187,7 @@ namespace relational { os << image_type << " " << mi.var << "callback;" << "sb2 " << mi.var << "indicator;" - << "OCILobLocator* " << mi.var << "lob;" + << "auto_descriptor<OCILobLocator> " << mi.var << "lob;" << "void* " << mi.var << "context;" << "ub4 " << mi.var << "position_context;" << "char " << mi.var << "buffer[4096];" |