dlib C++ Library - sqlite_tools_abstract.h

// Copyright (C) 2011 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#undef DLIB_SQLiTE_TOOLS_ABSTRACT_H_
#ifdef DLIB_SQLiTE_TOOLS_ABSTRACT_H_
#include "sqlite_abstract.h"
// ----------------------------------------------------------------------------------------
namespace dlib
{
 class transaction : noncopyable
 {
 /*!
 WHAT THIS OBJECT REPRESENTS
 This object is a tool for creating exception safe
 database transactions.
 !*/
 public:
 transaction (
 database& db
 );
 /*!
 ensures
 - Begins a database transaction which will be rolled back
 if commit() isn't called eventually.
 - In particular, performs: db.exec("begin transaction");
 !*/
 void commit (
 );
 /*!
 ensures
 - if (commit() hasn't already been called) then
 - Commits all changes made during this database transaction.
 - In particular, performs: db.exec("commit");
 - else
 - does nothing
 !*/
 ~transaction(
 );
 /*!
 ensures
 - if (commit() was never called) then
 - rolls back any changes made to the database during this transaction.
 - In particular, performs: db.exec("rollback");
 - else
 - does nothing
 !*/
 };
// ----------------------------------------------------------------------------------------
 template <
 typename T
 >
 void query_object (
 database& db,
 const std::string& query,
 T& item
 );
 /*!
 ensures
 - executes the given SQL query against db. If the query results in a 
 single row and column being returned then the data in the column is 
 interpreted as a binary BLOB and deserialized into item.
 throws
 - sqlite_error or serialization_error if an error occurs which prevents
 this operation from succeeding.
 !*/
// ----------------------------------------------------------------------------------------
 std::string query_text (
 database& db,
 const std::string& query
 );
 /*!
 ensures
 - executes the given SQL query against db. If the query results in a 
 single row and column being returned then the data in the column is 
 converted to text and returned.
 throws
 - sqlite_error if an error occurs which prevents this operation from 
 succeeding.
 !*/
// ----------------------------------------------------------------------------------------
 double query_double (
 database& db,
 const std::string& query
 );
 /*!
 ensures
 - executes the given SQL query against db. If the query results in a 
 single row and column being returned then the data in the column is 
 converted to a double and returned.
 throws
 - sqlite_error if an error occurs which prevents this operation from 
 succeeding.
 !*/
// ----------------------------------------------------------------------------------------
 int query_int (
 database& db,
 const std::string& query
 );
 /*!
 ensures
 - executes the given SQL query against db. If the query results in a 
 single row and column being returned then the data in the column is 
 converted to an int and returned.
 throws
 - sqlite_error if an error occurs which prevents this operation from 
 succeeding.
 !*/
// ----------------------------------------------------------------------------------------
 int64 query_int64 (
 database& db,
 const std::string& query
 );
 /*!
 ensures
 - executes the given SQL query against db. If the query results in a 
 single row and column being returned then the data in the column is 
 converted to an int64 and returned.
 throws
 - sqlite_error if an error occurs which prevents this operation from 
 succeeding.
 !*/
// ----------------------------------------------------------------------------------------
 const std::vector<char> query_blob (
 database& db,
 const std::string& query
 );
 /*!
 ensures
 - executes the given SQL query against db. If the query results in a 
 single row and column being returned then the data in the column is 
 returned as a binary BLOB.
 throws
 - sqlite_error if an error occurs which prevents this operation from 
 succeeding.
 !*/
// ----------------------------------------------------------------------------------------
}
#endif // DLIB_SQLiTE_TOOLS_H_

AltStyle によって変換されたページ (->オリジナル) /