int MyListNode::fetchMore()
{
- qDebug() << "fetching some more for root";
QSqlQuery &q = LocalMyList::instance()->database()->prepare(
- "SELECT aid, title_romaji AS title, (SELECT COUNT(e.eid) FROM episode e WHERE e.aid = a.aid), rating, my_vote, (SELECT COUNT(DISTINCT f.eid) FROM episode e JOIN file f ON (f.eid = e.eid) WHERE e.aid = a.aid AND f.my_watched IS NOT NULL) FROM anime a ORDER BY title ASC "
+ "SELECT aid, title_romaji AS title, "
+ " (SELECT COUNT(e.eid) "
+ " FROM episode e "
+ " WHERE e.aid = a.aid), "
+ " rating, my_vote, "
+ " (SELECT COUNT(DISTINCT f.eid) "
+ " FROM episode e "
+ " JOIN file f ON (f.eid = e.eid) "
+ " WHERE e.aid = a.aid "
+ " AND f.my_watched IS NOT NULL) "
+ " FROM anime a "
+ " ORDER BY title ASC "
"LIMIT :limit "
"OFFSET :offset ");
q.bindValue(":limit", LIMIT);
int MyListAnimeNode::fetchMore()
{
qDebug() << "fetching some more for aid" << m_id;
- QSqlQuery q(LocalMyList::instance()->database()->connection());
+ QSqlQuery &q = LocalMyList::instance()->database()->prepare(
+ "SELECT e.eid, e.title_english, e.epno, e.rating, e.my_vote, "
+ " (SELECT MIN(my_watched) "
+ " FROM "
+ " (SELECT my_watched "
+ " FROM file "
+ " WHERE eid = e.eid "
+ " AND my_watched IS NOT NULL "
+ " UNION "
+ " SELECT f.my_watched "
+ " FROM file f "
+ " JOIN file_episode_rel fer ON (fer.fid = f.fid) "
+ " WHERE fer.eid = e.eid "
+ " AND my_watched IS NOT NULL) AS sq) AS my_watched "
+ " FROM episode e "
+ " JOIN episode_type et ON (et.type = e.type)"
+ " WHERE e.aid = :aid "
+ " ORDER BY et.ordering ASC, e.epno ASC "
+ " LIMIT :limit "
+ " OFFSET :offset ");
+ q.bindValue(":aid", m_id);
+ q.bindValue(":limit", LIMIT);
+ q.bindValue(":offset", childCount());
- if (!q.exec("SELECT eid, title_english, epno, rating, my_vote, "
- " (SELECT MIN(my_watched) FROM "
- " (SELECT my_watched FROM file WHERE eid = episode.eid AND my_watched IS NOT NULL "
- " UNION SELECT f.my_watched FROM file f JOIN file_episode_rel fer ON (fer.fid = f.fid) WHERE fer.eid = episode.eid AND my_watched IS NOT NULL) AS sq) AS my_watched "
- " FROM episode WHERE aid = " + QString::number(m_id)
- + " ORDER BY epno ASC "
- "LIMIT " + QString::number(LIMIT) + " "
- "OFFSET " + QString::number(childCount())))
+ if (!LocalMyList::instance()->database()->exec(q))
return 0;
while (q.next())