aboutsummaryrefslogtreecommitdiff
path: root/odb/oracle/database.ixx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2014-08-14 09:37:06 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2014-11-25 06:45:34 +0200
commitb39e670403bfdff6870d9b9c7b075230e84c27cf (patch)
treedd7a8ee8cd96b0543a629e5db73680050a317e1c /odb/oracle/database.ixx
parent40052e8f41978087836d04a37d1dd86552e16b7b (diff)
Implement bulk database operation support for Oracle and SQL Server
Diffstat (limited to 'odb/oracle/database.ixx')
-rw-r--r--odb/oracle/database.ixx35
1 files changed, 35 insertions, 0 deletions
diff --git a/odb/oracle/database.ixx b/odb/oracle/database.ixx
index d3b56ae..e6a698e 100644
--- a/odb/oracle/database.ixx
+++ b/odb/oracle/database.ixx
@@ -27,6 +27,13 @@ namespace odb
template <typename T>
inline typename object_traits<T>::id_type database::
+ persist (const T& obj)
+ {
+ return persist_<const T, id_oracle> (obj);
+ }
+
+ template <typename T>
+ inline typename object_traits<T>::id_type database::
persist (T* p)
{
typedef typename object_traits<T>::pointer_type object_pointer;
@@ -93,6 +100,13 @@ namespace odb
return persist_<T, id_oracle> (pobj);
}
+ template <typename I>
+ inline void database::
+ persist (I b, I e, bool cont)
+ {
+ persist_<I, id_oracle> (b, e, cont);
+ }
+
template <typename T>
inline typename object_traits<T>::pointer_type database::
load (const typename object_traits<T>::id_type& id)
@@ -254,6 +268,13 @@ namespace odb
update_<T, id_oracle> (pobj);
}
+ template <typename I>
+ inline void database::
+ update (I b, I e, bool cont)
+ {
+ update_<I, id_oracle> (b, e, cont);
+ }
+
template <typename T>
inline void database::
update (const T& obj, const section& s)
@@ -343,6 +364,20 @@ namespace odb
erase_<T, id_oracle> (pobj);
}
+ template <typename T, typename I>
+ inline void database::
+ erase (I idb, I ide, bool cont)
+ {
+ erase_id_<I, T, id_oracle> (idb, ide, cont);
+ }
+
+ template <typename I>
+ inline void database::
+ erase (I ob, I oe, bool cont)
+ {
+ erase_object_<I, id_oracle> (ob, oe, cont);
+ }
+
template <typename T>
inline unsigned long long database::
erase_query ()