diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-03-22 15:47:09 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-03-22 15:47:09 +0200 |
commit | 4a4762c4b8e945dd617034a40f6633e0c9f364c7 (patch) | |
tree | abdde2d66b8b4f1d51f99469cae56398fe17f467 | |
parent | 28207bef7103251b7df1ee24b19d323c17444acd (diff) |
Add types for param/result binding
-rw-r--r-- | odb/sqlite/binding.hxx | 65 |
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 |