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; }
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); } }