Project

General

Profile

Download (1.78 KB) Statistics
| Branch: | Tag: | Revision:
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);
}