return false;
}
- CStdString strWhereClause;
- strWhereClause = FormatSQL("idEpg = %u", table.EpgID());
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idEpg = %u", table.EpgID()));
- return DeleteValues("epg", strWhereClause);
+ return DeleteValues("epg", filter);
}
bool CEpgDatabase::DeleteOldEpgEntries(void)
CDateTimeSpan(0, g_advancedSettings.m_iEpgLingerTime / 60, g_advancedSettings.m_iEpgLingerTime % 60, 0);
cleanupTime.GetAsTime(iCleanupTime);
- CStdString strWhereClause = FormatSQL("iEndTime < %u", iCleanupTime);
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("iEndTime < %u", iCleanupTime));
- return DeleteValues("epgtags", strWhereClause);
+ return DeleteValues("epgtags", filter);
}
bool CEpgDatabase::Delete(const CEpgInfoTag &tag)
if (tag.BroadcastId() <= 0)
return false;
- CStdString strWhereClause = FormatSQL("idBroadcast = %u", tag.BroadcastId());
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idBroadcast = %u", tag.BroadcastId()));
- return DeleteValues("epgtags", strWhereClause);
+ return DeleteValues("epgtags", filter);
}
int CEpgDatabase::Get(CEpgContainer &container)
{
int iReturn(-1);
- CStdString strQuery = FormatSQL("SELECT idEpg, sName, sScraperName FROM epg;");
+ CStdString strQuery = PrepareSQL("SELECT idEpg, sName, sScraperName FROM epg;");
if (ResultQuery(strQuery))
{
iReturn = 0;
{
int iReturn(-1);
- CStdString strQuery = FormatSQL("SELECT * FROM epgtags WHERE idEpg = %u;", epg.EpgID());
+ CStdString strQuery = PrepareSQL("SELECT * FROM epgtags WHERE idEpg = %u;", epg.EpgID());
if (ResultQuery(strQuery))
{
iReturn = 0;
bool CEpgDatabase::GetLastEpgScanTime(int iEpgId, CDateTime *lastScan)
{
bool bReturn = false;
- CStdString strWhereClause = FormatSQL("idEpg = %u", iEpgId);
+ CStdString strWhereClause = PrepareSQL("idEpg = %u", iEpgId);
CStdString strValue = GetSingleValue("lastepgscan", "sLastScan", strWhereClause);
if (!strValue.empty())
bool CEpgDatabase::PersistLastEpgScanTime(int iEpgId /* = 0 */, bool bQueueWrite /* = false */)
{
- CStdString strQuery = FormatSQL("REPLACE INTO lastepgscan(idEpg, sLastScan) VALUES (%u, '%s');",
+ CStdString strQuery = PrepareSQL("REPLACE INTO lastepgscan(idEpg, sLastScan) VALUES (%u, '%s');",
iEpgId, CDateTime::GetCurrentDateTime().GetAsUTCDateTime().GetAsDBDateTime().c_str());
return bQueueWrite ? QueueInsertQuery(strQuery) : ExecuteQuery(strQuery);
CStdString strQuery;
if (epg.EpgID() > 0)
- strQuery = FormatSQL("REPLACE INTO epg (idEpg, sName, sScraperName) "
+ strQuery = PrepareSQL("REPLACE INTO epg (idEpg, sName, sScraperName) "
"VALUES (%u, '%s', '%s');", epg.EpgID(), epg.Name().c_str(), epg.ScraperName().c_str());
else
- strQuery = FormatSQL("INSERT INTO epg (sName, sScraperName) "
+ strQuery = PrepareSQL("INSERT INTO epg (sName, sScraperName) "
"VALUES ('%s', '%s');", epg.Name().c_str(), epg.ScraperName().c_str());
if (bQueueWrite)
if (iBroadcastId < 0)
{
- strQuery = FormatSQL("REPLACE INTO epgtags (idEpg, iStartTime, "
+ strQuery = PrepareSQL("REPLACE INTO epgtags (idEpg, iStartTime, "
"iEndTime, sTitle, sPlotOutline, sPlot, iGenreType, iGenreSubType, sGenre, "
"iFirstAired, iParentalRating, iStarRating, bNotify, iSeriesId, "
"iEpisodeId, iEpisodePart, sEpisodeName, iBroadcastUid) "
}
else
{
- strQuery = FormatSQL("REPLACE INTO epgtags (idEpg, iStartTime, "
+ strQuery = PrepareSQL("REPLACE INTO epgtags (idEpg, iStartTime, "
"iEndTime, sTitle, sPlotOutline, sPlot, iGenreType, iGenreSubType, sGenre, "
"iFirstAired, iParentalRating, iStarRating, bNotify, iSeriesId, "
"iEpisodeId, iEpisodePart, sEpisodeName, iBroadcastUid, idBroadcast) "
int CEpgDatabase::GetLastEPGId(void)
{
- CStdString strQuery = FormatSQL("SELECT MAX(idEpg) FROM epg");
+ CStdString strQuery = PrepareSQL("SELECT MAX(idEpg) FROM epg");
CStdString strValue = GetSingleValue(strQuery);
if (!strValue.empty())
return atoi(strValue.c_str());
{
int iReturn(0);
- CStdString strQuery = FormatSQL("SELECT MAX(idChannel) as iMaxChannel FROM channels");
+ CStdString strQuery = PrepareSQL("SELECT MAX(idChannel) as iMaxChannel FROM channels");
if (ResultQuery(strQuery))
{
try
{
if (!m_pDS->eof())
iReturn = m_pDS->fv("iMaxChannel").get_asInt();
+ m_pDS->close();
}
catch (...) {}
}
}
CLog::Log(LOGDEBUG, "PVR - %s - deleting all channels from client '%i' from the database", __FUNCTION__, client.GetID());
- CStdString strWhereClause = FormatSQL("iClientId = %u", client.GetID());
- return DeleteValues("channels", strWhereClause);
+
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("iClientId = %u", client.GetID()));
+
+ return DeleteValues("channels", filter);
}
bool CPVRDatabase::Delete(const CPVRChannel &channel)
return false;
CLog::Log(LOGDEBUG, "PVR - %s - deleting channel '%s' from the database", __FUNCTION__, channel.ChannelName().c_str());
- CStdString strWhereClause = FormatSQL("idChannel = %u", channel.ChannelID());
- return DeleteValues("channels", strWhereClause);
+
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idChannel = %u", channel.ChannelID()));
+
+ return DeleteValues("channels", filter);
}
int CPVRDatabase::Get(CPVRChannelGroupInternal &results)
{
int iReturn(0);
- CStdString strQuery = FormatSQL("SELECT channels.idChannel, channels.iUniqueId, channels.bIsRadio, channels.bIsHidden, channels.bIsUserSetIcon, "
+ CStdString strQuery = PrepareSQL("SELECT channels.idChannel, channels.iUniqueId, channels.bIsRadio, channels.bIsHidden, channels.bIsUserSetIcon, "
"channels.sIconPath, channels.sChannelName, channels.bIsVirtual, channels.bEPGEnabled, channels.sEPGScraper, channels.iLastWatched, channels.iClientId, channels.bIsLocked, "
"channels.iClientChannelNumber, channels.sInputFormat, channels.sInputFormat, channels.sStreamURL, channels.iEncryptionSystem, map_channelgroups_channels.iChannelNumber, channels.idEpg "
"FROM map_channelgroups_channels "
return bReturn;
}
- CStdString strWhereClause = FormatSQL("idChannel = %u", channel.ChannelID());
- return DeleteValues("channelsettings", strWhereClause);
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idChannel = %u", channel.ChannelID()));
+
+ return DeleteValues("channelsettings", filter);
}
bool CPVRDatabase::GetChannelSettings(const CPVRChannel &channel, CVideoSettings &settings)
return bReturn;
}
- CStdString strQuery = FormatSQL("SELECT * FROM channelsettings WHERE idChannel = %u;", channel.ChannelID());
+ CStdString strQuery = PrepareSQL("SELECT * FROM channelsettings WHERE idChannel = %u;", channel.ChannelID());
if (ResultQuery(strQuery))
{
return false;
}
- CStdString strQuery = FormatSQL(
+ CStdString strQuery = PrepareSQL(
"REPLACE INTO channelsettings "
"(idChannel, iInterlaceMethod, iViewMode, fCustomZoomAmount, fPixelRatio, iAudioStream, iSubtitleStream, fSubtitleDelay, "
"bSubtitles, fBrightness, fContrast, fGamma, fVolumeAmplification, fAudioDelay, bOutputToAllSpeakers, bCrop, iCropLeft, "
bool CPVRDatabase::RemoveChannelsFromGroup(const CPVRChannelGroup &group)
{
- CStdString strWhereClause = FormatSQL("idGroup = %u", group.GroupID());
- return DeleteValues("map_channelgroups_channels", strWhereClause);
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idGroup = %u", group.GroupID()));
+
+ return DeleteValues("map_channelgroups_channels", filter);
}
bool CPVRDatabase::GetCurrentGroupMembers(const CPVRChannelGroup &group, vector<int> &members)
return false;
}
- CStdString strCurrentMembersQuery = FormatSQL("SELECT idChannel FROM map_channelgroups_channels WHERE idGroup = %u", group.GroupID());
+ CStdString strCurrentMembersQuery = PrepareSQL("SELECT idChannel FROM map_channelgroups_channels WHERE idGroup = %u", group.GroupID());
if (ResultQuery(strCurrentMembersQuery))
{
try
return false;
}
- CStdString strWhereClause;
- strWhereClause = FormatSQL("idGroup = %u", group.GroupID());
- return DeleteValues("map_channelgroups_channels", strWhereClause);
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idGroup = %u", group.GroupID()));
+
+ return DeleteValues("map_channelgroups_channels", filter);
}
bool CPVRDatabase::DeleteChannelsFromGroup(const CPVRChannelGroup &group, const vector<int> &channelsToDelete)
while (iDeletedChannels < channelsToDelete.size())
{
CStdString strChannelsToDelete;
- CStdString strWhereClause;
for (unsigned int iChannelPtr = 0; iChannelPtr + iDeletedChannels < channelsToDelete.size() && iChannelPtr < 50; iChannelPtr++)
strChannelsToDelete += StringUtils::Format(", %d", channelsToDelete.at(iDeletedChannels + iChannelPtr));
if (!strChannelsToDelete.empty())
{
strChannelsToDelete.erase(0, 2);
- strWhereClause = FormatSQL("idGroup = %u AND idChannel IN (%s)", group.GroupID(), strChannelsToDelete.c_str());
- bDelete = DeleteValues("map_channelgroups_channels", strWhereClause) && bDelete;
+
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idGroup = %u", group.GroupID()));
+ filter.AppendWhere(PrepareSQL("AND idChannel IN (%s)", strChannelsToDelete.c_str()));
+
+ bDelete = DeleteValues("map_channelgroups_channels", filter) && bDelete;
}
iDeletedChannels += 50;
// mysql doesn't support subqueries when deleting and sqlite doesn't support joins when deleting
if (g_advancedSettings.m_databaseTV.type.Equals("mysql"))
{
- CStdString strQuery = FormatSQL("DELETE m FROM map_channelgroups_channels m LEFT JOIN channels c ON (c.idChannel = m.idChannel) WHERE c.idChannel IS NULL");
+ CStdString strQuery = PrepareSQL("DELETE m FROM map_channelgroups_channels m LEFT JOIN channels c ON (c.idChannel = m.idChannel) WHERE c.idChannel IS NULL");
bDelete = ExecuteQuery(strQuery);
}
else
{
- CStdString strWhereClause = FormatSQL("idChannel IN (SELECT m.idChannel FROM map_channelgroups_channels m LEFT JOIN channels on m.idChannel = channels.idChannel WHERE channels.idChannel IS NULL)");
- bDelete = DeleteValues("map_channelgroups_channels", strWhereClause);
+ Filter filter;
+ filter.AppendWhere("idChannel IN (SELECT m.idChannel FROM map_channelgroups_channels m LEFT JOIN channels on m.idChannel = channels.idChannel WHERE channels.idChannel IS NULL)");
+
+ bDelete = DeleteValues("map_channelgroups_channels", filter);
}
}
}
else
{
- CStdString strWhereClause = FormatSQL("idGroup = %u", group.GroupID());
- bDelete = DeleteValues("map_channelgroups_channels", strWhereClause) && bDelete;
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idGroup = %u", group.GroupID()));
+
+ bDelete = DeleteValues("map_channelgroups_channels", filter) && bDelete;
}
return bDelete;
return false;
}
- CStdString strWhereClause = FormatSQL("idGroup = %u AND bIsRadio = %u", group.GroupID(), group.IsRadio());
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idGroup = %u", group.GroupID()));
+ filter.AppendWhere(PrepareSQL("bIsRadio = %u", group.IsRadio()));
+
return RemoveChannelsFromGroup(group) &&
- DeleteValues("channelgroups", strWhereClause);
+ DeleteValues("channelgroups", filter);
}
bool CPVRDatabase::Get(CPVRChannelGroups &results)
{
bool bReturn = false;
- CStdString strQuery = FormatSQL("SELECT * from channelgroups WHERE bIsRadio = %u", results.IsRadio());
+ CStdString strQuery = PrepareSQL("SELECT * from channelgroups WHERE bIsRadio = %u", results.IsRadio());
if (ResultQuery(strQuery))
{
return -1;
}
- CStdString strQuery = FormatSQL("SELECT idChannel, iChannelNumber FROM map_channelgroups_channels WHERE idGroup = %u ORDER BY iChannelNumber", group.GroupID());
+ CStdString strQuery = PrepareSQL("SELECT idChannel, iChannelNumber FROM map_channelgroups_channels WHERE idGroup = %u ORDER BY iChannelNumber", group.GroupID());
if (ResultQuery(strQuery))
{
iReturn = 0;
else
{
// remove a channel that doesn't exist (anymore) from the table
- DeleteValues("map_channelgroups_channels", FormatSQL("idGroup = %u AND idChannel = %u", group.GroupID(), iChannelId));
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("idGroup = %u", group.GroupID()));
+ filter.AppendWhere(PrepareSQL("idChannel = %u", iChannelId));
+
+ DeleteValues("map_channelgroups_channels", filter);
}
m_pDS->next();
{
PVRChannelGroupMember member = group.m_members.at(iChannelPtr);
- CStdString strWhereClause = FormatSQL("idChannel = %u AND idGroup = %u AND iChannelNumber = %u",
+ CStdString strWhereClause = PrepareSQL("idChannel = %u AND idGroup = %u AND iChannelNumber = %u",
member.channel->ChannelID(), group.GroupID(), member.iChannelNumber);
CStdString strValue = GetSingleValue("map_channelgroups_channels", "idChannel", strWhereClause);
if (strValue.empty())
{
- strQuery = FormatSQL("REPLACE INTO map_channelgroups_channels ("
+ strQuery = PrepareSQL("REPLACE INTO map_channelgroups_channels ("
"idGroup, idChannel, iChannelNumber) "
"VALUES (%i, %i, %i);",
group.GroupID(), member.channel->ChannelID(), member.iChannelNumber);
return false;
}
- CStdString strWhereClause = FormatSQL("sUid = '%s'", client.ID().c_str());
- return DeleteValues("clients", strWhereClause);
+ Filter filter;
+ filter.AppendWhere(PrepareSQL("sUid = '%s'", client.ID().c_str()));
+
+ return DeleteValues("clients", filter);
}
int CPVRDatabase::GetClientId(const CStdString &strClientUid)
{
- CStdString strWhereClause = FormatSQL("sUid = '%s'", strClientUid.c_str());
+ CStdString strWhereClause = PrepareSQL("sUid = '%s'", strClientUid.c_str());
CStdString strValue = GetSingleValue("clients", "idClient", strWhereClause);
if (strValue.empty())
bool CPVRDatabase::ResetEPG(void)
{
- CStdString strQuery = FormatSQL("UPDATE channels SET idEpg = 0");
+ CStdString strQuery = PrepareSQL("UPDATE channels SET idEpg = 0");
return ExecuteQuery(strQuery);
}
/* insert a new entry when this is a new group, or replace the existing one otherwise */
if (group.GroupID() <= 0)
- strQuery = FormatSQL("INSERT INTO channelgroups (bIsRadio, iGroupType, sName) VALUES (%i, %i, '%s')",
+ strQuery = PrepareSQL("INSERT INTO channelgroups (bIsRadio, iGroupType, sName) VALUES (%i, %i, '%s')",
(group.IsRadio() ? 1 :0), group.GroupType(), group.GroupName().c_str());
else
- strQuery = FormatSQL("REPLACE INTO channelgroups (idGroup, bIsRadio, iGroupType, sName) VALUES (%i, %i, %i, '%s')",
+ strQuery = PrepareSQL("REPLACE INTO channelgroups (idGroup, bIsRadio, iGroupType, sName) VALUES (%i, %i, %i, '%s')",
group.GroupID(), (group.IsRadio() ? 1 :0), group.GroupType(), group.GroupName().c_str());
bReturn = ExecuteQuery(strQuery);
return iReturn;
}
- CStdString strQuery = FormatSQL("REPLACE INTO clients (sName, sUid) VALUES ('%s', '%s');",
+ CStdString strQuery = PrepareSQL("REPLACE INTO clients (sName, sUid) VALUES ('%s', '%s');",
client->Name().c_str(), client->ID().c_str());
if (ExecuteQuery(strQuery))
if (channel.ChannelID() <= 0)
{
/* new channel */
- strQuery = FormatSQL("INSERT INTO channels ("
+ strQuery = PrepareSQL("INSERT INTO channels ("
"iUniqueId, bIsRadio, bIsHidden, bIsUserSetIcon, bIsLocked, "
"sIconPath, sChannelName, bIsVirtual, bEPGEnabled, sEPGScraper, iLastWatched, iClientId, "
"iClientChannelNumber, sInputFormat, sStreamURL, iEncryptionSystem, idEpg) "
else
{
/* update channel */
- strQuery = FormatSQL("REPLACE INTO channels ("
+ strQuery = PrepareSQL("REPLACE INTO channels ("
"iUniqueId, bIsRadio, bIsHidden, bIsUserSetIcon, bIsLocked, "
"sIconPath, sChannelName, bIsVirtual, bEPGEnabled, sEPGScraper, iLastWatched, iClientId, "
"iClientChannelNumber, sInputFormat, sStreamURL, iEncryptionSystem, idChannel, idEpg) "