651 | | |
652 | | MSqlQuery query(MSqlQuery::InitCon()); |
653 | | query.prepare("SELECT MIN(starttime),programid FROM program " |
654 | | "WHERE programid > '' GROUP BY programid;"); |
655 | | if (query.exec()) |
656 | | { |
657 | | updt.prepare("UPDATE program set first = 1 " |
658 | | "WHERE starttime = :STARTTIME " |
659 | | " AND programid = :PROGRAMID;"); |
660 | | while(query.next()) |
661 | | { |
662 | | updt.bindValue(":STARTTIME", query.value(0).toDateTime()); |
663 | | updt.bindValue(":PROGRAMID", query.value(1).toString()); |
664 | | if (!updt.exec()) |
665 | | MythDB::DBError("Marking first showings by id", updt); |
666 | | } |
667 | | } |
668 | | int found = query.size(); |
669 | | query.prepare("SELECT MIN(starttime),title,subtitle," |
670 | | " LEFT(description, 1024) AS partdesc " |
671 | | "FROM program WHERE programid = '' " |
672 | | "GROUP BY title,subtitle,partdesc;"); |
673 | | if (query.exec()) |
674 | | { |
675 | | updt.prepare("UPDATE program set first = 1 " |
676 | | "WHERE starttime = :STARTTIME " |
677 | | " AND title = :TITLE " |
678 | | " AND subtitle = :SUBTITLE " |
679 | | " AND LEFT(description, 1024) = :PARTDESC"); |
680 | | while(query.next()) |
681 | | { |
682 | | updt.bindValue(":STARTTIME", query.value(0).toDateTime()); |
683 | | updt.bindValue(":TITLE", query.value(1).toString()); |
684 | | updt.bindValue(":SUBTITLE", query.value(2).toString()); |
685 | | updt.bindValue(":PARTDESC", query.value(3).toString()); |
686 | | if (!updt.exec()) |
687 | | MythDB::DBError("Marking first showings", updt); |
688 | | } |
689 | | } |
690 | | found += query.size(); |
| 651 | updt.prepare("UPDATE program " |
| 652 | "JOIN (SELECT MIN(starttime) AS starttime, programid " |
| 653 | " FROM program " |
| 654 | " WHERE programid <> '' " |
| 655 | " GROUP BY programid " |
| 656 | " ) AS firsts " |
| 657 | "ON program.programid = firsts.programid " |
| 658 | " AND program.starttime = firsts.starttime " |
| 659 | "SET program.first=1;"); |
| 660 | if (!updt.exec()) |
| 661 | MythDB::DBError("Marking first showings by id", updt); |
| 662 | int found = updt.numRowsAffected(); |
| 663 | |
| 664 | updt.prepare("UPDATE program " |
| 665 | "JOIN (SELECT MIN(starttime) AS starttime, title, subtitle," |
| 666 | " LEFT(description, 1024) AS partdesc " |
| 667 | " FROM program " |
| 668 | " WHERE programid = '' " |
| 669 | " GROUP BY title, subtitle, partdesc " |
| 670 | " ) AS firsts " |
| 671 | "ON program.starttime = firsts.starttime " |
| 672 | " AND program.title = firsts.title " |
| 673 | " AND program.subtitle = firsts.subtitle " |
| 674 | " AND LEFT(program.description, 1024) = firsts.partdesc " |
| 675 | "SET program.first = 1 " |
| 676 | "WHERE program.programid = '';"); |
| 677 | if (!updt.exec()) |
| 678 | MythDB::DBError("Marking first showings", updt); |
| 679 | found += updt.numRowsAffected(); |
694 | | query.prepare("SELECT MAX(starttime),programid FROM program " |
695 | | "WHERE programid > '' GROUP BY programid;"); |
696 | | if (query.exec()) |
697 | | { |
698 | | updt.prepare("UPDATE program set last = 1 " |
699 | | "WHERE starttime = :STARTTIME " |
700 | | " AND programid = :PROGRAMID;"); |
701 | | while(query.next()) |
702 | | { |
703 | | updt.bindValue(":STARTTIME", query.value(0).toDateTime()); |
704 | | updt.bindValue(":PROGRAMID", query.value(1).toString()); |
705 | | if (!updt.exec()) |
706 | | MythDB::DBError("Marking last showings by id", updt); |
707 | | } |
708 | | } |
709 | | found = query.size(); |
710 | | query.prepare("SELECT MAX(starttime),title,subtitle," |
711 | | " LEFT(description, 1024) AS partdesc " |
712 | | "FROM program WHERE programid = '' " |
713 | | "GROUP BY title,subtitle,partdesc;"); |
714 | | if (query.exec()) |
715 | | { |
716 | | updt.prepare("UPDATE program set last = 1 " |
717 | | "WHERE starttime = :STARTTIME " |
718 | | " AND title = :TITLE " |
719 | | " AND subtitle = :SUBTITLE " |
720 | | " AND LEFT(description, 1024) = :PARTDESC"); |
721 | | while(query.next()) |
722 | | { |
723 | | updt.bindValue(":STARTTIME", query.value(0).toDateTime()); |
724 | | updt.bindValue(":TITLE", query.value(1).toString()); |
725 | | updt.bindValue(":SUBTITLE", query.value(2).toString()); |
726 | | updt.bindValue(":PARTDESC", query.value(3).toString()); |
727 | | if (!updt.exec()) |
728 | | MythDB::DBError("Marking last showings", updt); |
729 | | } |
730 | | } |
731 | | found += query.size(); |
| 683 | updt.prepare("UPDATE program " |
| 684 | "JOIN (SELECT MAX(starttime) AS starttime, programid " |
| 685 | " FROM program " |
| 686 | " WHERE programid <> '' " |
| 687 | " GROUP BY programid " |
| 688 | " ) AS lasts " |
| 689 | "ON program.programid = lasts.programid " |
| 690 | " AND program.starttime = lasts.starttime " |
| 691 | "SET program.last=1;"); |
| 692 | if (!updt.exec()) |
| 693 | MythDB::DBError("Marking last showings by id", updt); |
| 694 | found = updt.numRowsAffected(); |
| 695 | |
| 696 | updt.prepare("UPDATE program " |
| 697 | "JOIN (SELECT MAX(starttime) AS starttime, title, subtitle," |
| 698 | " LEFT(description, 1024) AS partdesc " |
| 699 | " FROM program " |
| 700 | " WHERE programid = '' " |
| 701 | " GROUP BY title, subtitle, partdesc " |
| 702 | " ) AS lasts " |
| 703 | "ON program.starttime = lasts.starttime " |
| 704 | " AND program.title = lasts.title " |
| 705 | " AND program.subtitle = lasts.subtitle " |
| 706 | " AND LEFT(program.description, 1024) = lasts.partdesc " |
| 707 | "SET program.last = 1 " |
| 708 | "WHERE program.programid = '';"); |
| 709 | if (!updt.exec()) |
| 710 | MythDB::DBError("Marking last showings", updt); |
| 711 | found += updt.numRowsAffected(); |