OpenMS
Loading...
Searching...
No Matches
SqliteConnector_impl.h File Reference
#include <OpenMS/FORMAT/SqliteConnector.h>
#include <OpenMS/CONCEPT/Exception.h>
#include <OpenMS/DATASTRUCTURES/StringUtils.h>
#include <sqlite3.h>
#include <sstream>
#include <string>
#include <type_traits>
#include <vector>
Include dependency graph for SqliteConnector_impl.h:

Go to the source code of this file.

Classes

struct  SqliteConnectorFriend
 

Namespaces

namespace  OpenMS
 Main OpenMS namespace.
 
namespace  OpenMS::Internal
 Namespace used to hide implementation details from users.
 
namespace  OpenMS::Internal::SqliteHelper
 

Enumerations

enum class  SqlState { SQL_ROW , SQL_DONE , SQL_ERROR }
 

Functions

sqlite3 * getNativeHandle (SqliteConnector &conn)
 Retrieve the typed native SQLite handle behind a SqliteConnector.
 
bool tableExists (sqlite3 *db, const std::string &tablename)
 Checks whether the given table exists.
 
bool columnExists (sqlite3 *db, const std::string &tablename, const std::string &colname)
 Checks whether the given table contains a certain column.
 
void executeStatement (sqlite3 *db, const std::string &statement)
 Executes a given SQL statement (insert statement)
 
void prepareStatement (sqlite3 *db, sqlite3_stmt **stmt, const std::string &prepare_statement)
 Converts an SQL statement into a prepared statement.
 
void prepareStatement (SqliteConnector &conn, sqlite3_stmt **stmt, const std::string &prepare_statement)
 Convenience overload: prepare a statement directly on a SqliteConnector's native handle.
 
void executeBindStatement (sqlite3 *db, const std::string &prepare_statement, const std::vector< std::string > &data)
 Executes raw data SQL statements (insert statements)
 
template<typename T >
UInt64 clearSignBit (T)
 
template<>
UInt64 clearSignBit (UInt64 value)
 only allow UInt64 specialization
 
SqlState nextRow (sqlite3_stmt *stmt, SqlState current=SqlState::SQL_ROW)
 retrieves the next row from a prepared statement
 
template<typename ValueType >
bool extractValue (ValueType *, sqlite3_stmt *, int)
 Extracts a specific value from an SQL column.
 
template<>
bool extractValue< double > (double *dst, sqlite3_stmt *stmt, int pos)
 
template<>
bool extractValue< int > (int *dst, sqlite3_stmt *stmt, int pos)
 
template<>
bool extractValue< Int64 > (Int64 *dst, sqlite3_stmt *stmt, int pos)
 
template<>
bool extractValue< std::string > (std::string *dst, sqlite3_stmt *stmt, int pos)
 
bool extractValueIntStr (std::string *dst, sqlite3_stmt *stmt, int pos)
 Special case where an integer should be stored in a std::string field.
 
double extractDouble (sqlite3_stmt *stmt, int pos)
 
float extractFloat (sqlite3_stmt *stmt, int pos)
 convenience function; note: in SQL there is no float, just double. So this might be narrowing.
 
int extractInt (sqlite3_stmt *stmt, int pos)
 
Int64 extractInt64 (sqlite3_stmt *stmt, int pos)
 
std::string extractString (sqlite3_stmt *stmt, int pos)
 
char extractChar (sqlite3_stmt *stmt, int pos)
 
bool extractBool (sqlite3_stmt *stmt, int pos)