| OpenMS 2.5.0

Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SqliteConnector Class Reference
Format » File IO

File adapter for Sqlite files. More...

`#include <OpenMS/FORMAT/SqliteConnector.h>`

## Public Member Functions

| SqliteConnector ()
| Default constructor. More...
| SqliteConnector (const String &filename)
| ~SqliteConnector ()
| Destructor. More...
sqlite3 * | getDB ()
| Returns the raw pointer to the database. More...
bool | tableExists (const String &tablename)
| Checks whether the given table exists. More...
bool | columnExists (const String &tablename, const String &colname)
| Checkes whether the given table contains a certain column. More...
void | executeStatement (const std::stringstream &statement)
| Executes a given SQL statement (insert statement) More...
void | executeStatement (const String &statement)
| Executes a given SQL statement (insert statement) More...
void | executeBindStatement (const String &prepare_statement, const std::vector< String > &data)
| Executes raw data SQL statements (insert statements) More...
void | prepareStatement (sqlite3_stmt **stmt, const String &prepare_statement)
| Prepares a SQL statement. More...

## Static Public Member Functions

static bool | tableExists (sqlite3 *db, const String &tablename)
| Checks whether the given table exists. More...
static bool | columnExists (sqlite3 *db, const String &tablename, const String &colname)
| Checks whether the given table contains a certain column. More...
static void | executeStatement (sqlite3 *db, const std::stringstream &statement)
| Executes a given SQL statement (insert statement) More...
static void | executeStatement (sqlite3 *db, const String &statement)
| Executes a given SQL statement (insert statement) More...
static void | prepareStatement (sqlite3 *db, sqlite3_stmt **stmt, const String &prepare_statement)
| Converts an SQL statement into a prepared statement. More...
static void | executeBindStatement (sqlite3 *db, const String &prepare_statement, const std::vector< String > &data)
| Executes raw data SQL statements (insert statements) More...

## Protected Member Functions

void | openDatabase (const String &filename)
| Opens a new SQLite database. More...

## Protected Attributes

sqlite3 * | db_

## Detailed Description

File adapter for Sqlite files.

This class contains certain helper functions to deal with Sqlite files.

## Constructor & Destructor Documentation

## ◆ SqliteConnector() [1/2]

SqliteConnector | ( |  | ) |

Default constructor.

## ◆ SqliteConnector() [2/2]

SqliteConnector | ( | const String & | filename | ) |

inline explicit

## ◆ ~SqliteConnector()

~SqliteConnector | ( |  | ) |

Destructor.

## Member Function Documentation

## ◆ columnExists() [1/2]

bool columnExists | ( | const String & | tablename,
|  | const String & | colname
| ) |  |

inline

Checkes whether the given table contains a certain column.

`tablename` The name of the table (needs to exist) `colname` The name of the column to be checked

Returns
  Whether the column exists or not

## ◆ columnExists() [2/2]

static bool columnExists | ( | sqlite3 * | db,
|  | const String & | tablename,
|  | const String & | colname
| ) |  |

static

Checks whether the given table contains a certain column.

`db` The sqlite database (needs to be open) `tablename` The name of the table (needs to exist) `colname` The name of the column to be checked

Returns
  Whether the column exists or not

## ◆ executeBindStatement() [1/2]

void executeBindStatement | ( | const String & | prepare_statement,
|  | const std::vector< String > & | data
| ) |  |

inline

Executes raw data SQL statements (insert statements)

This is useful for a case where raw data should be inserted into sqlite databases, and the raw data needs to be passed separately as it cannot be part of a true SQL statement

INSERT INTO TBL (ID, DATA) VALUES (100, ?1), (101, ?2), (102, ?3)"

See also https://www.sqlite.org/c3ref/bind_blob.html

`statement` The SQL statement `data` The data to bind

Exceptions

  Exception::IllegalArgument | is thrown if the SQL command fails.

## ◆ executeBindStatement() [2/2]

static void executeBindStatement | ( | sqlite3 * | db,
|  | const String & | prepare_statement,
|  | const std::vector< String > & | data
| ) |  |

static

Executes raw data SQL statements (insert statements)

This is useful for a case where raw data should be inserted into sqlite databases, and the raw data needs to be passed separately as it cannot be part of a true SQL statement

INSERT INTO TBL (ID, DATA) VALUES (100, ?1), (101, ?2), (102, ?3)"

See also https://www.sqlite.org/c3ref/bind_blob.html

`db` The sqlite database (needs to be open) `statement` The SQL statement `data` The data to bind

Exceptions

  Exception::IllegalArgument | is thrown if the SQL command fails.

## ◆ executeStatement() [1/4]

void executeStatement | ( | const std::stringstream & | statement | ) |

inline

Executes a given SQL statement (insert statement)

This is useful for writing a single row of data

`statement` The SQL statement

## ◆ executeStatement() [2/4]

void executeStatement | ( | const String & | statement | ) |

inline

Executes a given SQL statement (insert statement)

This is useful for writing a single row of data

`statement` The SQL statement

Exceptions

  Exception::IllegalArgument | is thrown if the SQL command fails.

## ◆ executeStatement() [3/4]

static void executeStatement | ( | sqlite3 * | db,
|  | const std::stringstream & | statement
| ) |  |

static

Executes a given SQL statement (insert statement)

This is useful for writing a single row of data. It wraps sqlite3_exec with proper error handling.

`db` The sqlite database (needs to be open) `statement` The SQL statement

Exceptions

  Exception::IllegalArgument | is thrown if the SQL command fails.

## ◆ executeStatement() [4/4]

static void executeStatement | ( | sqlite3 * | db,
|  | const String & | statement
| ) |  |

static

Executes a given SQL statement (insert statement)

This is useful for writing a single row of data. It wraps sqlite3_exec with proper error handling.

`db` The sqlite database (needs to be open) `statement` The SQL statement

Exceptions

  Exception::IllegalArgument | is thrown if the SQL command fails.

## ◆ getDB()

sqlite3* getDB | ( |  | ) |

inline

Returns the raw pointer to the database.

Note
  The pointer is tied to the lifetime of the SqliteConnector object, do not use it after the object has gone out of scope!

Returns
  SQLite database ptr

## ◆ openDatabase()

void openDatabase | ( | const String & | filename | ) |

protected

Opens a new SQLite database.

Filename of the database

Note
  Call this only once!

## ◆ prepareStatement() [1/2]

void prepareStatement | ( | sqlite3_stmt ** | stmt,
|  | const String & | prepare_statement
| ) |  |

inline

Prepares a SQL statement.

This is useful for handling errors in a consistent manner.

`db` The sqlite database (needs to be open) `statement` The SQL statement `data` The data to bind

Exceptions

  Exception::IllegalArgument | is thrown if the SQL command fails.

## ◆ prepareStatement() [2/2]

static void prepareStatement | ( | sqlite3 * | db,
|  | sqlite3_stmt ** | stmt,
|  | const String & | prepare_statement
| ) |  |

static

Converts an SQL statement into a prepared statement.

This routine converts SQL text into a prepared statement object and returns a pointer to that object. This interface requires a database connection created by a prior call to sqlite3_open() and a text string containing the SQL statement to be prepared. This API does not actually evaluate the SQL statement. It merely prepares the SQL statement for evaluation.

This is useful for handling errors in a consistent manner. Internally calls sqlite3_prepare_v2.

`db` The sqlite database (needs to be open) `stmt` The prepared statement (output) `prepare_statement` The SQL statement to prepare (input)

Exceptions

  Exception::IllegalArgument | is thrown if the SQL command fails.

## ◆ tableExists() [1/2]

bool tableExists | ( | const String & | tablename | ) |

inline

Checks whether the given table exists.

`tablename` The name of the table to be checked

Returns
  Whether the table exists or not

## ◆ tableExists() [2/2]

static bool tableExists | ( | sqlite3 * | db,
|  | const String & | tablename
| ) |  |

static

Checks whether the given table exists.

`db` The sqlite database (needs to be open) `tablename` The name of the table to be checked

Returns
  Whether the table exists or not

## Member Data Documentation

## ◆ db_

sqlite3* db_

protected