101 errors
This commit is contained in:
parent
ff7338d9d4
commit
d423a805b9
4 changed files with 75 additions and 11 deletions
|
@ -18,7 +18,7 @@ void sosc::db::init_databases() {
|
||||||
sqlite3_open("scape.db", &_ctx.hard_db);
|
sqlite3_open("scape.db", &_ctx.hard_db);
|
||||||
db::Query query("SELECT * FROM MIGRATIONS ORDER BY ID ASC");
|
db::Query query("SELECT * FROM MIGRATIONS ORDER BY ID ASC");
|
||||||
auto results = query.GetResults();
|
auto results = query.GetResults();
|
||||||
while()
|
//while()
|
||||||
|
|
||||||
_ctx.ready = true;
|
_ctx.ready = true;
|
||||||
}
|
}
|
||||||
|
@ -64,6 +64,39 @@ void sosc::db::Query::SetQuery(const std::string &query, int db) {
|
||||||
this->open = true;
|
this->open = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sosc::db::Query::Bind<double>(double value, int i) {
|
||||||
|
sqlite3_bind_double(this->statement, i, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sosc::db::Query::Bind<int32_t>(int32_t value, int i) {
|
||||||
|
sqlite3_bind_int(this->statement, i, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sosc::db::Query::Bind<int64_t>(int64_t value, int i) {
|
||||||
|
sqlite3_bind_int64(this->statement, i, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sosc::db::Query::Bind<sosc::time>(sosc::time value, int i) {
|
||||||
|
sqlite3_bind_int64(this->statement, i, clk::to_unix_time(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
void sosc::db::Query::Bind<std::string>
|
||||||
|
(const std::string& value, int i, int type)
|
||||||
|
{
|
||||||
|
if(type == DB_COL_TEXT)
|
||||||
|
sqlite3_bind_text(
|
||||||
|
this->statement, i,
|
||||||
|
value.c_str(), -1,
|
||||||
|
SQLITE_TRANSIENT
|
||||||
|
);
|
||||||
|
else
|
||||||
|
sqlite3_bind_blob(
|
||||||
|
this->statement, i,
|
||||||
|
value.c_str(), value.length(),
|
||||||
|
SQLITE_TRANSIENT
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
void sosc::db::Query::NonQuery() {
|
void sosc::db::Query::NonQuery() {
|
||||||
if(!_ctx.ready || !this->open)
|
if(!_ctx.ready || !this->open)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -34,11 +34,13 @@ private:
|
||||||
friend class Query;
|
friend class Query;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*double ResultSet::Get<double>(int column);
|
/*
|
||||||
int32_t ResultSet::Get<int32_t>(int column);
|
template<> double ResultSet::Get<double>(int column);
|
||||||
int64_t ResultSet::Get<int64_t>(int column);
|
template<> int32_t ResultSet::Get<int32_t>(int column);
|
||||||
sosc::time ResultSet::Get<sosc::time>(int column);
|
template<> int64_t ResultSet::Get<int64_t>(int column);
|
||||||
std::string ResultSet::Get<std::string>(int column, int type = DB_COL_TEXT);*/
|
template<> sosc::time ResultSet::Get<sosc::time>(int column);
|
||||||
|
template<> std::string ResultSet::Get<std::string>(int column, int type);
|
||||||
|
*/
|
||||||
|
|
||||||
class Query {
|
class Query {
|
||||||
public:
|
public:
|
||||||
|
@ -46,6 +48,11 @@ public:
|
||||||
Query(const std::string& query, int db = DB_USE_HARD);
|
Query(const std::string& query, int db = DB_USE_HARD);
|
||||||
void SetQuery(const std::string& query, int db = DB_USE_HARD);
|
void SetQuery(const std::string& query, int db = DB_USE_HARD);
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void Bind(T value, int i);
|
||||||
|
template<typename T>
|
||||||
|
void Bind(const T& value, int i, int type);
|
||||||
|
|
||||||
void NonQuery();
|
void NonQuery();
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
@ -69,11 +76,20 @@ private:
|
||||||
friend class ResultSet;
|
friend class ResultSet;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*double Query::Scalar<double>();
|
/*
|
||||||
int32_t Query::Scalar<int32_t>();
|
template<> void Query::Bind<double>(double value, int i);
|
||||||
int64_t Query::Scalar<int64_t>();
|
template<> void Query::Bind<int32_t>(int32_t value, int i);
|
||||||
sosc::time Query::Scalar<sosc::time>();
|
template<> void Query::Bind<int64_t>(int64_t value, int i);
|
||||||
std::string Query::Scalar<std::string>(int type = DB_COL_TEXT);*/
|
template<> void Query::Bind<sosc::time>(sosc::time value, int i);
|
||||||
|
template<> std::string Query::Bind<std::string>
|
||||||
|
(const std::string& value, int i, int type);
|
||||||
|
|
||||||
|
template<> double Query::Scalar<double>();
|
||||||
|
template<> int32_t Query::Scalar<int32_t>();
|
||||||
|
template<> int64_t Query::Scalar<int64_t>();
|
||||||
|
template<> sosc::time Query::Scalar<sosc::time>();
|
||||||
|
template<> std::string Query::Scalar<std::string>(int type);
|
||||||
|
*/
|
||||||
|
|
||||||
// THE FOLLOWING ARE NOT THREAD SAFE !!
|
// THE FOLLOWING ARE NOT THREAD SAFE !!
|
||||||
// CALL THEM ONLY WHEN MASTER POOL IS INACTIVE
|
// CALL THEM ONLY WHEN MASTER POOL IS INACTIVE
|
||||||
|
|
|
@ -12,6 +12,20 @@ sosc::time sosc::clk::from_unix_time(uint64_t unix) {
|
||||||
+ std::chrono::seconds(unix);
|
+ std::chrono::seconds(unix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t sosc::clk::to_unix_time(sosc::time time) {
|
||||||
|
std::tm raw = std::tm();
|
||||||
|
raw.tm_year = 70;
|
||||||
|
raw.tm_yday = 0;
|
||||||
|
raw.tm_hour = 0;
|
||||||
|
raw.tm_min = 0;
|
||||||
|
raw.tm_sec = 0;
|
||||||
|
|
||||||
|
sosc::time epoch = sosc::clock::from_time_t(mktime(&raw));
|
||||||
|
return (uint64_t)
|
||||||
|
std::chrono::duration_cast
|
||||||
|
<std::chrono::seconds>(time - epoch).count();
|
||||||
|
}
|
||||||
|
|
||||||
std::tm sosc::clk::to_utc(sosc::time time) {
|
std::tm sosc::clk::to_utc(sosc::time time) {
|
||||||
time_t ctime = sosc::clock::to_time_t(time);
|
time_t ctime = sosc::clock::to_time_t(time);
|
||||||
return to_utc(&ctime);
|
return to_utc(&ctime);
|
||||||
|
|
|
@ -15,6 +15,7 @@ typedef std::chrono::time_point<sosc::clock> time;
|
||||||
|
|
||||||
namespace clk {
|
namespace clk {
|
||||||
sosc::time from_unix_time(uint64_t unix);
|
sosc::time from_unix_time(uint64_t unix);
|
||||||
|
uint64_t to_unix_time(sosc::time time);
|
||||||
|
|
||||||
std::tm to_utc(sosc::time time);
|
std::tm to_utc(sosc::time time);
|
||||||
std::tm to_utc(const time_t* time);
|
std::tm to_utc(const time_t* time);
|
||||||
|
|
Loading…
Reference in a new issue