std::map<SensorType, int> Sql::getSensorsFromNode(int nodeID) { std::string query("SELECT temperatureID, humidityID, pressureID, batteryID, co2ID, anemoID, vaneID, pluvioID from nodes WHERE nodeID = " + std::to_string(nodeID)); auto data = executeQuery(query); std::cout << "data.size() " << data.size() << std::endl; if (data.size() != 1) { throw SqlError(); } std::map<SensorType, int> sensors; auto it = data.begin(); std::map<std::string, std::string>::iterator field; CHECKSENSOR(temperatureID, TEMP) CHECKSENSOR(humidityID, HUM) CHECKSENSOR(pressureID, PRES) CHECKSENSOR(batteryID, BAT) CHECKSENSOR(co2ID, CO2) CHECKSENSOR(anemoID, ANEMO) CHECKSENSOR(vaneID, VANE) CHECKSENSOR(pluvioID, PLUVIO) /* field = it->find("temperatureID"); if(field != it->end()) { if(field->second != std::string("-1")) { sensors.insert(std::pair<SensorType,int>(TEMP, boost::lexical_cast<int>(field->second))); } } */ return sensors; }
int SqlError( #ifdef PLATFORM_WIN32 HWND parent, #endif const char *text, const Sql& sql, bool retry) { return SqlError( #ifdef PLATFORM_WIN32 parent, #endif text, sql.GetSession(), retry); }
int SqlError( #ifdef PLATFORM_WIN32 HWND parent, #endif const char *text, const SqlSession& session, bool retry) { return SqlError( #ifdef PLATFORM_WIN32 parent, #endif text, session.GetLastError(), session.GetErrorStatement(), retry); }
bool DisplayError(const SqlSession& session, const char *msg) { if(!session.WasError()) return false; SqlError(msg ? msg : t_("The operation has failed"), session.GetLastError(), session.GetErrorStatement()); return true; }
int SqlError(const char *text, const Sql& sql, bool retry) { return SqlError(HWND(NULL), text, sql, retry); }
int SqlError(const char *text, const SqlSession& session, bool retry) { return SqlError(HWND(NULL), text, session, retry); }
int SqlError(const char *text, const char *error, const char *statement, bool retry) { return SqlError(HWND(NULL), text, error, statement, retry); }