diff options
Diffstat (limited to 'ml/dlib/dlib/sqlite/sqlite_tools.h')
-rw-r--r-- | ml/dlib/dlib/sqlite/sqlite_tools.h | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/ml/dlib/dlib/sqlite/sqlite_tools.h b/ml/dlib/dlib/sqlite/sqlite_tools.h deleted file mode 100644 index 062a6b2c8..000000000 --- a/ml/dlib/dlib/sqlite/sqlite_tools.h +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright (C) 2011 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#ifndef DLIB_SQLiTE_TOOLS_H_ -#define DLIB_SQLiTE_TOOLS_H_ - - -#include "sqlite_tools_abstract.h" -#include "sqlite.h" - -// ---------------------------------------------------------------------------------------- - -namespace dlib -{ - - class transaction : noncopyable - { - public: - transaction ( - database& db_ - ) : - db(db_), - committed(false) - { - db.exec("begin transaction"); - } - - void commit () - { - if (!committed) - { - committed = true; - db.exec("commit"); - } - } - - ~transaction() throw (std::exception) - { - if (!committed) - db.exec("rollback"); - } - - private: - database& db; - bool committed; - - }; - -// ---------------------------------------------------------------------------------------- - - - template < - typename T - > - void query_object ( - database& db, - const std::string& query, - T& item - ) - { - statement st(db, query); - st.exec(); - if (st.move_next() && st.get_num_columns() == 1) - { - st.get_column_as_object(0,item); - if (st.move_next()) - throw sqlite_error("query doesn't result in exactly 1 element"); - } - else - { - throw sqlite_error("query doesn't result in exactly 1 element"); - } - } - -// ---------------------------------------------------------------------------------------- - - inline std::string query_text ( - database& db, - const std::string& query - ) - { - statement st(db, query); - st.exec(); - if (st.move_next() && st.get_num_columns() == 1) - { - const std::string& temp = st.get_column_as_text(0); - if (st.move_next()) - throw sqlite_error("query doesn't result in exactly 1 element"); - return temp; - } - else - { - throw sqlite_error("query doesn't result in exactly 1 element"); - } - } - -// ---------------------------------------------------------------------------------------- - - inline double query_double ( - database& db, - const std::string& query - ) - { - statement st(db, query); - st.exec(); - if (st.move_next() && st.get_num_columns() == 1) - { - double temp = st.get_column_as_double(0); - if (st.move_next()) - throw sqlite_error("query doesn't result in exactly 1 element"); - return temp; - } - else - { - throw sqlite_error("query doesn't result in exactly 1 element"); - } - } - -// ---------------------------------------------------------------------------------------- - - inline int query_int ( - database& db, - const std::string& query - ) - { - statement st(db, query); - st.exec(); - if (st.move_next() && st.get_num_columns() == 1) - { - int temp = st.get_column_as_int(0); - if (st.move_next()) - throw sqlite_error("query doesn't result in exactly 1 element"); - return temp; - } - else - { - throw sqlite_error("query doesn't result in exactly 1 element"); - } - } - -// ---------------------------------------------------------------------------------------- - - inline int64 query_int64 ( - database& db, - const std::string& query - ) - { - statement st(db, query); - st.exec(); - if (st.move_next() && st.get_num_columns() == 1) - { - int64 temp = st.get_column_as_int64(0); - if (st.move_next()) - throw sqlite_error("query doesn't result in exactly 1 element"); - return temp; - } - else - { - throw sqlite_error("query doesn't result in exactly 1 element"); - } - } - -// ---------------------------------------------------------------------------------------- - - inline const std::vector<char> query_blob ( - database& db, - const std::string& query - ) - { - statement st(db, query); - st.exec(); - if (st.move_next() && st.get_num_columns() == 1) - { - const std::vector<char>& temp = st.get_column_as_blob(0); - if (st.move_next()) - throw sqlite_error("query doesn't result in exactly 1 element"); - return temp; - } - else - { - throw sqlite_error("query doesn't result in exactly 1 element"); - } - } - -// ---------------------------------------------------------------------------------------- - -} - -#endif // DLIB_SQLiTE_TOOLS_H_ - |