00001
00002 #include <mythdb.h>
00003
00004
00005 #include "newsdbutil.h"
00006 #include "newssite.h"
00007
00008 bool findInDB(const QString& name)
00009 {
00010 MSqlQuery query(MSqlQuery::InitCon());
00011 query.prepare("SELECT name FROM newssites WHERE name = :NAME ;");
00012 query.bindValue(":NAME", name);
00013 if (!query.exec() || !query.isActive()) {
00014 MythDB::DBError("new find in db", query);
00015 return false;
00016 }
00017
00018 return query.size() > 0;
00019 }
00020
00021 bool insertInDB(NewsSiteItem* site)
00022 {
00023 if (!site) return false;
00024
00025 return insertInDB(site->name, site->url, site->ico, site->category,
00026 site->podcast);
00027 }
00028
00029 bool insertInDB(const QString &name, const QString &url,
00030 const QString &icon, const QString &category,
00031 const bool podcast)
00032 {
00033 if (findInDB(name))
00034 return false;
00035
00036 MSqlQuery query(MSqlQuery::InitCon());
00037 query.prepare("INSERT INTO newssites (name,category,url,ico,podcast,updated) "
00038 " VALUES( :NAME, :CATEGORY, :URL, :ICON, :PODCAST, 0);");
00039 query.bindValue(":NAME", name);
00040 query.bindValue(":CATEGORY", category);
00041 query.bindValue(":URL", url);
00042 query.bindValue(":ICON", icon);
00043 query.bindValue(":PODCAST", podcast);
00044 if (!query.exec() || !query.isActive()) {
00045 MythDB::DBError("news: inserting in DB", query);
00046 return false;
00047 }
00048
00049 return (query.numRowsAffected() > 0);
00050 }
00051
00052 bool removeFromDB(NewsSiteItem* site)
00053 {
00054 if (!site) return false;
00055
00056 return removeFromDB(site->name);
00057 }
00058
00059 bool removeFromDB(const QString &name)
00060 {
00061 MSqlQuery query(MSqlQuery::InitCon());
00062 query.prepare("DELETE FROM newssites WHERE name = :NAME ;");
00063 query.bindValue(":NAME", name);
00064 if (!query.exec() || !query.isActive()) {
00065 MythDB::DBError("news: delete from db", query);
00066 return false;
00067 }
00068
00069 return (query.numRowsAffected() > 0);
00070 }