 |
OpenMS
3.0.0
|
|
Go to the documentation of this file.
41 #include <type_traits>
73 explicit SqliteConnector(
const String& filename,
const SqlOpenMode mode = SqlOpenMode::READWRITE_OR_CREATE);
101 return tableExists(db_, tablename);
106 Size countTableRows(
const String& table_name);
118 return columnExists(db_, tablename, colname);
132 executeStatement(db_, statement);
153 executeBindStatement(db_, prepare_statement, data);
169 prepareStatement(db_, stmt, prepare_statement);
180 static bool tableExists(sqlite3* db,
const String& tablename);
191 static bool columnExists(sqlite3* db,
const String& tablename,
const String& colname);
203 static void executeStatement(sqlite3* db,
const std::stringstream& statement);
215 static void executeStatement(sqlite3* db,
const String& statement);
236 static void prepareStatement(sqlite3* db, sqlite3_stmt** stmt,
const String& prepare_statement);
256 static void executeBindStatement(sqlite3* db,
const String& prepare_statement,
const std::vector<String>& data);
267 void openDatabase_(
const String& filename,
const SqlOpenMode mode);
270 sqlite3* db_ =
nullptr;
276 namespace SqliteHelper
281 template <
typename T>
284 static_assert(std::is_same<T, std::false_type>::value,
"Wrong input type to clearSignBit(). Please pass unsigned 64bit ints!");
290 return value & ~(1ULL << 63);
338 template <
typename ValueType>
352 template <>
bool extractValue<std::string>(std::string* dst, sqlite3_stmt* stmt,
int pos);
int extractInt(sqlite3_stmt *stmt, int pos)
OPENMS_UINT64_TYPE UInt64
Unsigned integer type (64bit)
Definition: Types.h:77
File adapter for Sqlite files.
Definition: SqliteConnector.h:56
A method or algorithm argument contains illegal values.
Definition: Exception.h:648
void executeBindStatement(const String &prepare_statement, const std::vector< String > &data)
Executes raw data SQL statements (insert statements)
Definition: SqliteConnector.h:151
void executeStatement(const String &statement)
Executes a given SQL statement (insert statement)
Definition: SqliteConnector.h:130
A more convenient string class.
Definition: String.h:58
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
OPENMS_INT64_TYPE Int64
Signed integer type (64bit)
Definition: Types.h:70
float extractFloat(sqlite3_stmt *stmt, int pos)
convenience function; note: in SQL there is no float, just double. So this might be narrowing.
SqlState nextRow(sqlite3_stmt *stmt, SqlState current=SqlState::SQL_ROW)
retrieves the next row from a prepared statement
bool extractValue< int >(int *dst, sqlite3_stmt *stmt, int pos)
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
String extractString(sqlite3_stmt *stmt, int pos)
SqlOpenMode
how an sqlite db should be opened
Definition: SqliteConnector.h:61
double extractDouble(sqlite3_stmt *stmt, int pos)
bool extractBool(sqlite3_stmt *stmt, int pos)
SqlState
Definition: SqliteConnector.h:294
UInt64 clearSignBit(T)
Definition: SqliteConnector.h:282
bool extractValueIntStr(String *dst, sqlite3_stmt *stmt, int pos)
Special case where an integer should be stored in a String field.
Int64 extractInt64(sqlite3_stmt *stmt, int pos)
bool extractValue< String >(String *dst, sqlite3_stmt *stmt, int pos)
sqlite3 * getDB()
Returns the raw pointer to the database.
Definition: SqliteConnector.h:87
bool extractValue< double >(double *dst, sqlite3_stmt *stmt, int pos)
bool columnExists(const String &tablename, const String &colname)
Checks whether the given table contains a certain column.
Definition: SqliteConnector.h:116
void prepareStatement(sqlite3_stmt **stmt, const String &prepare_statement)
Prepares a SQL statement.
Definition: SqliteConnector.h:167
bool extractValue(ValueType *, sqlite3_stmt *, int)
Extracts a specific value from an SQL column.
Definition: SqliteConnector.h:339
bool extractValue< Int64 >(Int64 *dst, sqlite3_stmt *stmt, int pos)
includes SQLITE_BUSY, SQLITE_ERROR, SQLITE_MISUSE
char extractChar(sqlite3_stmt *stmt, int pos)
bool tableExists(const String &tablename)
Checks whether the given table exists.
Definition: SqliteConnector.h:99