Public Member Functions

SqlDataStrategy Class Reference
[Column Manipulation Strategies]

A column strategy used to interpret floats from raw data and allow conversions based on conversions stored in the database. More...

#include <importfilemodel.h>

Inheritance diagram for SqlDataStrategy:
Inheritance graph
[legend]
Collaboration diagram for SqlDataStrategy:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 SqlDataStrategy (StrategySettings &settings)
void reconfigure ()
Strategy::StrategyType name () const

Detailed Description

A column strategy used to interpret floats from raw data and allow conversions based on conversions stored in the database.


Constructor & Destructor Documentation

SqlDataStrategy::SqlDataStrategy ( StrategySettings settings  ) 

: DataStrategy(settings) {reconfigure();};


Member Function Documentation

Strategy::StrategyType SqlDataStrategy::name (  )  const [virtual]

Reimplemented from DataStrategy.

{return Strategy::StrategySensorSqlData;}

void SqlDataStrategy::reconfigure (  )  [virtual]

Reimplemented from DataStrategy.

Referenced by SqlDataStrategy().

{
    QVariant f = setting(Strategy::FormatUnitIdFrom);
    QVariant t = setting(Strategy::FormatTreeId);

    if (f.isValid() && !f.isNull() && t.isValid() && !t.isNull()){
        QString query = "SELECT unit_conv_factor, unit_conv_offset "
                        "FROM vew_unit_conversions AS c "
                        "INNER JOIN tbl_sensors AS s ON (c.unit_id_to = s.unit_id) "
                        "INNER JOIN tbl_trees AS t USING (sens_id) "
                        "WHERE c.unit_id_from = " + f.toString() + " AND "
                        "t.tree_id = " + t.toString();
        QSqlQuery q = Database::execStatic(query);

        if (q.isActive()){
            // soms kan het zijn dat hier 0 is, omdat bijvoorbeeld iemand de unit van de sensor veranderd heeft
            if (q.size() == 0) {
                qWarning() << "SqlDataStrategy::reconfigure() vindt voor UnitFrom " << f.toString()
                        << " en TreeId " << t.toString() << " geen conversion factor?";
                return;
            }

            //indien em hier stopt, dan is q.size() groter dan 1, wat niet zou mogen.
            Q_ASSERT(q.size() == 1);

            if (q.first()){
                QVariant f(q.value(0));
                QVariant o(q.value(1));
                Q_ASSERT(f.isValid() && !f.isNull() && o.isValid() && !o.isNull());
                unitConvertor() = UnitConvertor(f.toDouble(), o.toDouble());
            } else qDebug() << "First record failed in SqlDataStrategy: " << q.lastError().text();
        } else qDebug() << "No unitConversion found in SqlDataStrategy!" << f << t;
    }
}


The documentation for this class was generated from the following files: