MDL-25708 recordsets - fix lib/grade/xxx stuff
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Mon, 3 Jan 2011 16:31:02 +0000 (17:31 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 25 Jan 2011 18:59:00 +0000 (19:59 +0100)
lib/grade/grade_category.php
lib/grade/grade_grade.php
lib/grade/grade_item.php

index 98cbb6c..abe6120 100644 (file)
@@ -481,7 +481,8 @@ class grade_category extends grade_object {
               ORDER BY g.userid";
 
         // group the results by userid and aggregate the grades for this user
-        if ($rs = $DB->get_recordset_sql($sql, $params)) {
+        $rs = $DB->get_recordset_sql($sql, $params);
+        if ($rs->valid()) {
             $prevuser = 0;
             $grade_values = array();
             $excluded     = array();
@@ -506,9 +507,9 @@ class grade_category extends grade_object {
                     $oldgrade = $used;
                 }
             }
-            $rs->close();
             $this->aggregate_grades($prevuser, $items, $grade_values, $oldgrade, $excluded);//the last one
         }
+        $rs->close();
 
         return true;
     }
index 1b710ae..97c4233 100644 (file)
@@ -390,14 +390,13 @@ class grade_grade extends grade_object {
         $now = time(); // no rounding needed, this is not supposed to be called every 10 seconds
         list($usql, $params) = $DB->get_in_or_equal($items);
         $params[] = $now;
-        if ($rs = $DB->get_recordset_select('grade_grades', "itemid $usql AND locked = 0 AND locktime > 0 AND locktime < ?", $params)) {
-            foreach ($rs as $grade) {
-                $grade_grade = new grade_grade($grade, false);
-                $grade_grade->locked = time();
-                $grade_grade->update('locktime');
-            }
-            $rs->close();
+        $rs = $DB->get_recordset_select('grade_grades', "itemid $usql AND locked = 0 AND locktime > 0 AND locktime < ?", $params);
+        foreach ($rs as $grade) {
+            $grade_grade = new grade_grade($grade, false);
+            $grade_grade->locked = time();
+            $grade_grade->update('locktime');
         }
+        $rs->close();
     }
 
     /**
index f4301ec..630e915 100644 (file)
@@ -1722,7 +1722,8 @@ class grade_item extends grade_object {
         $return = true;
 
         // group the grades by userid and use formula on the group
-        if ($rs = $DB->get_recordset_sql($sql, $params)) {
+        $rs = $DB->get_recordset_sql($sql, $params);
+        if ($rs->valid()) {
             $prevuser = 0;
             $grade_records   = array();
             $oldgrade    = null;
@@ -1740,11 +1741,11 @@ class grade_item extends grade_object {
                 }
                 $grade_records['gi'.$used->itemid] = $used->finalgrade;
             }
-            $rs->close();
             if (!$this->use_formula($prevuser, $grade_records, $useditems, $oldgrade)) {
                 $return = false;
             }
         }
+        $rs->close();
 
         return $return;
     }