32 const size_t cardinality,
33 const bool read_write)
40 const size_t cardinality,
41 const bool read_write,
42 const std::string logger_level)
55 #if defined(HAVE_SQLITE3_H)
69 SQLITE_OPEN_READWRITE,
75 if (rc != SQLITE_OK) {
79 SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,
83 if (rc != SQLITE_OK) {
84 std::string error = sqlite3_errmsg(db);
100 #elif defined(HAVE_SQLITE_H)
122 #if defined(HAVE_SQLITE3_H)
124 #elif defined(HAVE_SQLITE_H)
134 char* sqlite_error_msg = 0;
136 logger << DEBUG <<
"executing query: " << query <<
endl;
137 #if defined(HAVE_SQLITE3_H)
138 int result = sqlite3_exec(
139 #elif defined(HAVE_SQLITE_H)
140 int result = sqlite_exec(
149 if (result != SQLITE_OK) {
151 if (sqlite_error_msg != 0) {
152 error = sqlite_error_msg;
154 #if defined(HAVE_SQLITE3_H)
155 sqlite3_free(sqlite_error_msg);
156 #elif defined(HAVE_SQLITE_H)
157 # ifdef HAVE_STDLIB_H
158 free(sqlite_error_msg);
161 logger << ERROR <<
"Error executing SQL: '"
163 <<
"' : " << error <<
endl;
180 for (
int i = 0; i < argc; i++) {
181 if (argv[i] != NULL) {
183 ngram.push_back(argv[i]);
193 query_result.push_back(ngram);
virtual NgramTable executeSql(const std::string query) const
SqliteDatabaseConnector(const std::string db, const size_t cardinality, const bool read_write)
std::string get_database_filename() const
virtual void closeDatabase()
size_t get_cardinality() const
void createNgramTable(const size_t cardinality) const
static int callback(void *pArg, int argc, char **argv, char **columnNames)
std::vector< Ngram > NgramTable
virtual void openDatabase()
bool get_read_write_mode() const
~SqliteDatabaseConnector()
const Logger< _charT, _Traits > & endl(const Logger< _charT, _Traits > &lgr)