From 5b6382d1e83b69110f5b4a45abd433a48762aa22 Mon Sep 17 00:00:00 2001 From: Constantin Michael Date: Mon, 7 Nov 2011 15:16:29 +0200 Subject: Pass LOB capacity using bind::capacity member instead of deriving at run-time --- odb/relational/oracle/source.cxx | 17 +++++++++++++---- 1 file 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 (&" << 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; } -- cgit v1.1