예제 #1
0
bool touchmind::model::node::NodeModel::IsDescendantSaveRequired(SAVE_COUNTER saveCouner) const {
  if (IsSaveRequired(saveCouner)) {
    return true;
  } else {
    for (size_t i = 0; i < GetActualChildrenCount(); ++i) {
      auto child = GetChild(i);
      if (child->IsDescendantSaveRequired(saveCouner)) {
        return true;
      }
    }
  }
  return false;
}
예제 #2
0
void SimpleDBStorage::Save(QString _table)
{
    if (!IsSaveRequired())
        return;

    MSqlBindings bindings;
    QString querystr = QString("SELECT * FROM " + _table + " WHERE "
                               + GetWhereClause(bindings) + ';');

    MSqlQuery query(MSqlQuery::InitCon());
    query.prepare(querystr);
    query.bindValues(bindings);

    if (!query.exec())
    {
        MythDB::DBError("SimpleDBStorage::Save() query", query);
        return;
    }

    if (query.isActive() && query.next())
    {
        // Row already exists
        // Don"t change this QString. See the CVS logs rev 1.91.
        MSqlBindings bindings;

        querystr = QString("UPDATE " + _table + " SET " + GetSetClause(bindings) +
                           " WHERE " + GetWhereClause(bindings) + ';');

        query.prepare(querystr);
        query.bindValues(bindings);

        if (!query.exec())
            MythDB::DBError("SimpleDBStorage::Save() update", query);
    }
    else
    {
        // Row does not exist yet
        MSqlBindings bindings;

        querystr = QString("INSERT INTO " + _table + " SET "
                           + GetSetClause(bindings) + ';');

        query.prepare(querystr);
        query.bindValues(bindings);

        if (!query.exec())
            MythDB::DBError("SimpleDBStorage::Save() insert", query);
    }
}