aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-03-22 15:47:09 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-03-22 15:47:09 +0200
commit4a4762c4b8e945dd617034a40f6633e0c9f364c7 (patch)
treeabdde2d66b8b4f1d51f99469cae56398fe17f467
parent28207bef7103251b7df1ee24b19d323c17444acd (diff)
Add types for param/result binding
-rw-r--r--odb/sqlite/binding.hxx65
1 files changed, 65 insertions, 0 deletions
diff --git a/odb/sqlite/binding.hxx b/odb/sqlite/binding.hxx
new file mode 100644
index 0000000..70edd28
--- /dev/null
+++ b/odb/sqlite/binding.hxx
@@ -0,0 +1,65 @@
+// file : odb/sqlite/binding.hxx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC
+// license : GNU GPL v2; see accompanying LICENSE file
+
+#ifndef ODB_SQLITE_BINDING_HXX
+#define ODB_SQLITE_BINDING_HXX
+
+#include <odb/pre.hxx>
+
+#include <cstddef> // std::size_t
+
+#include <odb/forward.hxx>
+
+#include <odb/sqlite/details/export.hxx>
+
+namespace odb
+{
+ namespace sqlite
+ {
+ // The SQLite parameter/result binding. This data structures is
+ // modelled after MYSQL_BIND from MySQL.
+ //
+ struct bind
+ {
+ enum buffer_type
+ {
+ integer, // Buffer is long long; size, capacity, truncated are unused.
+ real, // Buffer is double; size, capacity, truncated are unused.
+ text, // Buffer is a char array.
+ blob // Buffer is a char array.
+ };
+
+ buffer_type type;
+ void* buffer;
+ std::size_t* size;
+ std::size_t capacity;
+ bool* is_null;
+ bool* truncated;
+ };
+
+ class LIBODB_SQLITE_EXPORT binding
+ {
+ public:
+ typedef sqlite::bind bind_type;
+
+ binding (bind_type* b, std::size_t n)
+ : bind (b), count (n), version (0)
+ {
+ }
+
+ bind_type* bind;
+ std::size_t count;
+ std::size_t version;
+
+ private:
+ binding (const binding&);
+ binding& operator= (const binding&);
+ };
+ }
+}
+
+#include <odb/post.hxx>
+
+#endif // ODB_SQLITE_BINDING_HXX