diff options
author | Constantin Michael <constantin@codesynthesis.com> | 2011-11-07 15:16:29 +0200 |
---|---|---|
committer | Constantin Michael <constantin@codesynthesis.com> | 2011-11-08 14:46:51 +0200 |
commit | 5b6382d1e83b69110f5b4a45abd433a48762aa22 (patch) | |
tree | 331ead6b0c6d7543f9d68ca368d9510da7c3381a | |
parent | 70492a2ffe88a8ba8393a895eee7716778bec84a (diff) |
Pass LOB capacity using bind::capacity member instead of deriving at run-time
-rw-r--r-- | odb/relational/oracle/source.cxx | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/odb/relational/oracle/source.cxx b/odb/relational/oracle/source.cxx index c3d4f59..f362d5b 100644 --- a/odb/relational/oracle/source.cxx +++ b/odb/relational/oracle/source.cxx @@ -312,10 +312,19 @@ namespace relational "callback;" << b << ".context = &" << arg << "." << mi.var << "context;" << "if (sk == statement_select)" << endl + << "{" << b << ".buffer = &" << arg << "." << mi.var << "lob;" + << b << ".capacity = sizeof (OCILobLocator*);" + << b << ".size = 0;" + << "}" << "else" << endl + << "{" + //@@ Modify to less than the total size to see what happens + // + << b << ".capacity = 4096;" << b << ".size = reinterpret_cast<ub2*> (&" << arg << "." << mi.var << "position_context);" + << "}" << endl; } @@ -838,13 +847,12 @@ namespace relational os << traits << "::set_value (" << endl << member << "," << endl << "i." << mi.var << "value," << endl - << "i." << mi.var << "size," << endl << "i." << mi.var << "indicator == -1);" << endl; } virtual void - traverse_string (member_info& mi) + traverse_interval_ym (member_info& mi) { os << traits << "::set_value (" << endl << member << "," << endl @@ -854,7 +862,7 @@ namespace relational } virtual void - traverse_interval_ym (member_info& mi) + traverse_interval_ds (member_info& mi) { os << traits << "::set_value (" << endl << member << "," << endl @@ -864,11 +872,12 @@ namespace relational } virtual void - traverse_interval_ds (member_info& mi) + traverse_string (member_info& mi) { os << traits << "::set_value (" << endl << member << "," << endl << "i." << mi.var << "value," << endl + << "i." << mi.var << "size," << endl << "i." << mi.var << "indicator == -1);" << endl; } |