root/software/sqlite_poc/DBManager.cc @ 564d0193
| 88cf406f | David Sorber | #include <iostream>
|
||
#include "DBManager.h"
|
||||
| 143a60e7 | David Sorber | // Helper function for int64_t type
|
||
void get_value(int64_t& val, int idx, sqlite3_stmt* stmt)
|
||||
{
|
||||
| 7080e544 | David Sorber | if (sqlite3_column_type(stmt, idx) == SQLITE_INTEGER)
|
||
{
|
||||
val = sqlite3_column_int64(stmt, idx);
|
||||
}
|
||||
else if (sqlite3_column_type(stmt, idx) == SQLITE_NULL)
|
||||
{
|
||||
val = 0;
|
||||
}
|
||||
else
|
||||
| 143a60e7 | David Sorber | {
|
||
assert(false);
|
||||
}
|
||||
}
|
||||
// Helper function for double type
|
||||
void get_value(double& val, int idx, sqlite3_stmt* stmt)
|
||||
{
|
||||
| 7080e544 | David Sorber | if (sqlite3_column_type(stmt, idx) == SQLITE_FLOAT)
|
||
| 143a60e7 | David Sorber | {
|
||
| 7080e544 | David Sorber | val = sqlite3_column_double(stmt, idx);
|
||
}
|
||||
else if (sqlite3_column_type(stmt, idx) == SQLITE_NULL)
|
||||
{
|
||||
val = 0.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(false);
|
||||
| 143a60e7 | David Sorber | }
|
||
}
|
||||
// Helper function for string type
|
||||
void get_value(std::string& val, int idx, sqlite3_stmt* stmt)
|
||||
{
|
||||
if (sqlite3_column_type(stmt, idx) == SQLITE_TEXT)
|
||||
{
|
||||
val.assign(reinterpret_cast<const char*>(sqlite3_column_text(stmt, idx)));
|
||||
}
|
||||
else if (sqlite3_column_type(stmt, idx) == SQLITE_NULL)
|
||||
{
|
||||
val.assign("");
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
}
|
||||
| 258a530e | David Sorber | // Helper function for bool type
|
||
void get_value(bool& val, int idx, sqlite3_stmt* stmt)
|
||||
| 88cf406f | David Sorber | {
|
||
| 258a530e | David Sorber | if (sqlite3_column_type(stmt, idx) == SQLITE_INTEGER)
|
||
{
|
||||
val = (sqlite3_column_int(stmt, idx) == 1 ? true : false);
|
||||
}
|
||||
else if (sqlite3_column_type(stmt, idx) == SQLITE_NULL)
|
||||
{
|
||||
val = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
}
|
||||
| 143a60e7 | David Sorber | |||
| 258a530e | David Sorber | DBManager::DBManager(const std::string& db_path)
|
||
{
|
||||
| 88cf406f | David Sorber | int rc = sqlite3_open(db_path.c_str(), &this->db);
|
||
if (rc)
|
||||
{
|
||||
std::cerr << "Uh-oh spaghetti O's" << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
| 6e4119a4 | David Sorber | std::cout << "DB connected\n" << std::endl;
|
||
| 88cf406f | David Sorber | }
|
||
}
|
||||
DBManager::~DBManager()
|
||||
{
|
||||
sqlite3_close(this->db);
|
||||
}
|