<%pre> #include #include #include #include <%config> dburl; <&header title="Critical systems">

Critical systems

<{ tntdb::Connection conn = tntdb::connect(dburl); std::string query1; query1 += "SELECT c.name, i.description, i.id "; query1 += "FROM installation i INNER JOIN customer c "; query1 += "ON i.customerid = c.id"; tntdb::Result inst_res = conn.select(query1); std::string query2; query2 += "SELECT commerror,temperature,flamedetector,conveyorerror,powerfailure "; query2 += "FROM logtable "; query2 += "INNER JOIN installation "; query2 += "ON logtable.installationnr = installation.id "; query2 += "WHERE installationnr = :v1 "; query2 += "ORDER BY messagenr DESC "; query2 += "LIMIT 1"; tntdb::Statement st = conn.prepare(query2); std::ostream& out = reply.out(); for (unsigned i=0; i 0) { bool commerror = res[0].getBool(0); int temperature = res[0].getInt(1); bool flameDetector = res[0].getBool(2); bool conveyorError = res[0].getBool(3); bool powerFailure = res[0].getBool(4); if (commerror || temperature > 90 || flameDetector == false || conveyorError || powerFailure) { out << "" << inst_res[i].getString(0) << " : " << inst_res[i].getString(1) << "
\n"; out << "
    "; if (temperature > 90) out << "
  • High temperature
  • \n"; if (commerror) out << "
  • Communication error
  • \n"; if (flameDetector == false) out << "
  • No flames
  • \n"; if (conveyorError) out << "
  • Conveyor error
  • \n"; if (powerFailure) out << "
  • Power failure
  • \n"; out << "
\n"; } } } }> <&footer>