bool CPVRDatabase::PersistChannels(CPVRChannelGroup &group) { bool bReturn(true); CPVRChannelPtr channel; for (const auto& groupMember : group.m_members) { channel = groupMember.second.channel; if (channel->IsChanged() || channel->IsNew()) { if (Persist(*channel, false)) { groupMember.second.channel->Persisted(); bReturn = true; } } } bReturn &= CommitInsertQueries(); if (bReturn) { std::string strQuery; std::string strValue; for (const auto& groupMember : group.m_members) { channel = groupMember.second.channel; strQuery = PrepareSQL("iUniqueId = %u AND iClientId = %u", channel->UniqueID(), channel->ClientID()); strValue = GetSingleValue("channels", "idChannel", strQuery); if (!strValue.empty() && StringUtils::IsInteger(strValue)) channel->SetChannelID(atoi(strValue.c_str())); } } return bReturn; }