42 lines
795 B
C
42 lines
795 B
C
|
#include "db.h"
|
||
|
#include "sqlite3.h"
|
||
|
#include "util.h"
|
||
|
|
||
|
bool
|
||
|
db_open(const char *file, sqlite3 **db)
|
||
|
{
|
||
|
debug("Opening DB: %s", file);
|
||
|
|
||
|
int result = sqlite3_open(file, db);
|
||
|
if (result) {
|
||
|
error("Failed to open db: %s", sqlite3_errmsg(db));
|
||
|
}
|
||
|
return result == 0;
|
||
|
}
|
||
|
|
||
|
bool
|
||
|
db_execute_stmnt(const char *stmnt,
|
||
|
sqlite3 *db,
|
||
|
int(*cb)(void*, int, char**, char**),
|
||
|
void *cb_arg)
|
||
|
{
|
||
|
debug("Executing sql: %s", stmnt);
|
||
|
|
||
|
char *errorMsg = NULL;
|
||
|
if (sqlite3_exec(db, stmnt, cb, cb_arg, &errorMsg)) {
|
||
|
error("Faled to execute statement: %s", stmnt);
|
||
|
error("Sqlite3: %s", errorMsg);
|
||
|
sqlite3_free(errorMsg);
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
void db_close(sqlite3 **db)
|
||
|
{
|
||
|
char *fname = sqlite3_db_filename(*db, NULL);
|
||
|
debug("Closing db: %s", fname);
|
||
|
sqlite3_close(*db);
|
||
|
*db = NULL;
|
||
|
}
|