aboutsummaryrefslogtreecommitdiff
path: root/odb/oracle/statement.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-10-30 17:52:31 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-11-01 14:29:56 +0200
commit62d4405faf1060e447dc06fbda6789ff36bdbe36 (patch)
tree5d92b75b5440c8035236e5f963fbff9c4fe1532e /odb/oracle/statement.cxx
parente0ab16f484d0b39e3760a063b3416cbd74a26c5e (diff)
Rework statement interfaces wrt param/result passing
Diffstat (limited to 'odb/oracle/statement.cxx')
-rw-r--r--odb/oracle/statement.cxx61
1 files changed, 29 insertions, 32 deletions
diff --git a/odb/oracle/statement.cxx b/odb/oracle/statement.cxx
index 8e96696..0446353 100644
--- a/odb/oracle/statement.cxx
+++ b/odb/oracle/statement.cxx
@@ -153,16 +153,15 @@ namespace odb
}
void statement::
- bind_param (bind* b, size_t c, size_t o)
+ bind_param (bind* b, size_t n)
{
OCIError* err (conn_.error_handle ());
// The parameter position in OCIBindByPos is specified as a 1-based
- // index. Convert o to a 1-based offset.
+ // index.
//
- ++o;
-
- for (size_t e (o + c); o < e; ++o, ++b)
+ n++;
+ for (ub4 i (1); i < n; ++i, ++b)
{
#if OCI_MAJOR_VERSION < 11 || \
(OCI_MAJOR_VERSION == 11 && OCI_MINOR_VERSION < 2)
@@ -180,7 +179,7 @@ namespace odb
sword r (OCIBindByPos (stmt_,
&h,
err,
- o,
+ i,
callback ? 0 : b->buffer,
// When parameter callbacks are in use, set the
// allowable data length to the maximum
@@ -541,33 +540,33 @@ namespace odb
select_statement::
select_statement (connection& conn,
const string& s,
- binding& cond,
- binding& data,
+ binding& param,
+ binding& result,
size_t lob_prefetch_size)
: statement (conn, s),
- data_ (data),
- data_version_ (0),
+ result_ (result),
+ result_version_ (0),
lob_prefetch_size_ (lob_prefetch_size),
done_ (true)
{
- bind_param (cond.bind, cond.count, 0);
- bind_result (data.bind, data.count, lob_prefetch_size);
- data_version_ = data_.version;
+ bind_param (param.bind, param.count);
+ bind_result (result.bind, result.count, lob_prefetch_size);
+ result_version_ = result_.version;
}
select_statement::
select_statement (connection& conn,
const string& s,
- binding& data,
+ binding& result,
size_t lob_prefetch_size)
: statement (conn, s),
- data_ (data),
- data_version_ (0),
+ result_ (result),
+ result_version_ (0),
lob_prefetch_size_ (lob_prefetch_size),
done_ (true)
{
- bind_result (data.bind, data.count, lob_prefetch_size);
- data_version_ = data_.version;
+ bind_result (result.bind, result.count, lob_prefetch_size);
+ result_version_ = result_.version;
}
void select_statement::
@@ -608,7 +607,7 @@ namespace odb
// of this assertion is a native view with a number of data members
// not matching the number of columns in the SELECT-list.
//
- assert (n == data_.count);
+ assert (n == result_.count);
#endif
}
@@ -617,15 +616,15 @@ namespace odb
{
if (!done_)
{
- change_callback* cc (data_.change_callback);
+ change_callback* cc (result_.change_callback);
if (cc != 0 && cc->callback != 0)
(cc->callback) (cc->context);
- if (data_version_ != data_.version)
+ if (result_version_ != result_.version)
{
- rebind_result (data_.bind, data_.count, lob_prefetch_size_);
- data_version_ = data_.version;
+ rebind_result (result_.bind, result_.count, lob_prefetch_size_);
+ result_version_ = result_.version;
}
sword r (OCIStmtFetch2 (stmt_,
@@ -728,11 +727,11 @@ namespace odb
insert_statement::
insert_statement (connection& conn,
const string& s,
- binding& data,
+ binding& param,
bool returning)
: statement (conn, s)
{
- bind_param (data.bind, data.count, 0);
+ bind_param (param.bind, param.count);
if (returning)
{
@@ -742,7 +741,7 @@ namespace odb
sword r (OCIBindByPos (stmt_,
&h,
err,
- data.count + 1,
+ param.count + 1,
0,
#if (OCI_MAJOR_VERSION == 11 && OCI_MINOR_VERSION >=2) \
|| OCI_MAJOR_VERSION > 11
@@ -842,12 +841,10 @@ namespace odb
update_statement::
update_statement (connection& conn,
const string& s,
- binding& cond,
- binding& data)
+ binding& param)
: statement (conn, s)
{
- bind_param (data.bind, data.count, 0);
- bind_param (cond.bind, cond.count, data.count);
+ bind_param (param.bind, param.count);
}
void update_statement::
@@ -898,10 +895,10 @@ namespace odb
delete_statement::
delete_statement (connection& conn,
const string& s,
- binding& cond)
+ binding& param)
: statement (conn, s)
{
- bind_param (cond.bind, cond.count, 0);
+ bind_param (param.bind, param.count);
}
unsigned long long delete_statement::