aboutsummaryrefslogtreecommitdiff
path: root/odb/sqlite/container-statements.txx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-04-25 11:29:06 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-04-25 11:29:06 +0200
commit7a77db69c516415bfd8370c8b4d1e6bb1a4c5f60 (patch)
treea3e6c3d231f84b45ba4b6f625b6b6588e8cc2b87 /odb/sqlite/container-statements.txx
parentc4d059b6346398e936dbc8c84d35c90aa4ec4253 (diff)
Reuse container traits from base objects
Diffstat (limited to 'odb/sqlite/container-statements.txx')
-rw-r--r--odb/sqlite/container-statements.txx34
1 files changed, 28 insertions, 6 deletions
diff --git a/odb/sqlite/container-statements.txx b/odb/sqlite/container-statements.txx
index 15bd4a7..bad380c 100644
--- a/odb/sqlite/container-statements.txx
+++ b/odb/sqlite/container-statements.txx
@@ -22,8 +22,8 @@ namespace odb
&traits::load_all,
&traits::delete_all),
id_binding_ (0),
- cond_image_binding_ (cond_image_bind_, traits::cond_column_count),
- data_image_binding_ (data_image_bind_, traits::data_column_count)
+ cond_image_binding_ (0, 0), // Initialized by impl.
+ data_image_binding_ (0, 0) // Initialized by impl.
{
cond_image_.version = 0;
cond_image_version_ = 0;
@@ -32,13 +32,35 @@ namespace odb
data_image_.version = 0;
data_image_version_ = 0;
data_id_binding_version_ = 0;
+ }
+
+ template <typename T>
+ container_statements_impl<T>::
+ container_statements_impl (connection& conn)
+ : base (conn)
+ {
+ this->cond_image_bind_ = cond_image_bind_array_;
+ this->data_image_bind_ = data_image_bind_array_;
+ this->data_image_truncated_ = data_image_truncated_array_;
- std::memset (cond_image_bind_, 0, sizeof (cond_image_bind_));
- std::memset (data_image_bind_, 0, sizeof (data_image_bind_));
- std::memset (data_image_truncated_, 0, sizeof (data_image_truncated_));
+ this->cond_image_binding_.bind = this->cond_image_bind_;
+ this->cond_image_binding_.count = traits::cond_column_count;
+
+ this->data_image_binding_.bind = this->data_image_bind_;
+ this->data_image_binding_.count = traits::data_column_count;
+
+ std::memset (cond_image_bind_array_, 0, sizeof (cond_image_bind_array_));
+ std::memset (data_image_bind_array_, 0, sizeof (data_image_bind_array_));
+ std::memset (data_image_truncated_array_,
+ 0,
+ sizeof (data_image_truncated_array_));
for (std::size_t i (0); i < traits::data_column_count; ++i)
- data_image_bind_[i].truncated = data_image_truncated_ + i;
+ data_image_bind_array_[i].truncated = data_image_truncated_array_ + i;
+
+ this->insert_one_text_ = traits::insert_one_statement;
+ this->select_all_text_ = traits::select_all_statement;
+ this->delete_all_text_ = traits::delete_all_statement;
}
}
}