Oracle Web Application Programming for PL/SQL Developers

Solutions Specification for student_list_update

Description: Calls the instruct.grade_calc procedure to calculate a grade for a specific student and section. If a grade is returned with a valid return code, update the student's grade in the database, and call instruct.student_list to display the new information.

Sample Code

CREATE OR REPLACE PROCEDURE student_list_update
   (p_student_id IN student.student_id%TYPE,
    p_section_id IN section.section_id%TYPE) AS
 --------------------------------------------------------
-- FILENAME:     student_list_update
-- FILEDATE:     01.20.2003
-- CREATED BY:   Susan Boardman
-- DESCRIPTION:  Calls instruct.grade_calc to determine a
--               student grade for a particular section.
-- URL        :  student_list_update
--------------------------------------------------------
 
   v_final_grade  enrollment.final_grade%TYPE;
   v_exit_code    char(1);
 
BEGIN
 
   instruct.grade_calc(p_student_id, p_section_id, v_final_grade, v_exit_code);
 
  IF v_exit_code = 'S' then
      UPDATE enrollment
        SET final_grade=v_final_grade
       WHERE student_id=p_student_id
         AND section_id=p_section_id;
      COMMIT;
      htp.script('alert("Success!  The final grade has been computed.");');
 
   ELSIF v_exit_code = 'I' then
      htp.script('alert("Not all the required grades have been entered for this student in this section.");');
   ELSIF v_exit_code = 'T' then
      htp.script('alert("Too many grades exist for this student.  For example, there should only be 4 homeworks and there are 6.");');
   ELSIF v_exit_code = 'N' then
      htp.script('alert("No grades have been entered for this student in this section.");');
   ELSIF v_exit_code = 'E' then
      htp.script('alert("An error occurred when computing this grade.  Please notify the application administrator and try again later.");');
   END IF;
 
   instruct.student_list(p_section_id);
 
EXCEPTION
  WHEN OTHERS THEN
    htp.p('An error occurred: '||SQLERRM||'.  Please try again later.');
END;

Select a Sample Application Code Unit

  1. main_frame (15.2)
  2. top_menu (13.3) / (15.2)
  3. splash (13.1)
  4. student_main_frame (6.3)
  5. students_left_nav (6.3)
  6. search_student (12.4)
  7. get_student (12.4)
  8. student_list (12.4)
  9. student_personal_info (12.4)
  10. student_zipcode (18.5)
  11. update_student (18.5)
  12. instruct (Package Spec and Body)
    • grade_calc (9.2)
    • v_font (9.4)
    • c_instruct_list (9.4)
    • inst_tbl_type (9.4)
    • instruct_table (9.4)
    • [PL/SQL block to load instruct_table] (9.4)
    • instruct_personal_info (11.3)
    • instructor_list_info (11.3)
    • showzip (11.3)
    • instructors_frame (11.1)
    • instructors_left_nav (11.1)
    • update_instructor (11.2)
    • instructor_list_class (11.3)
    • instruct_classes (11.3)
    • student_list (11.2)
  13. classes_main_frame (6.3)
  14. classes_left_nav (6, Building App)
  15. classes_list (6, Building App)
  16. classes_location (13.4)
  17. classes_location_update (13.4)
  18. set_cookie (15.2)
  19. get_cookie (15.2)
  20. cookie_exists (15.2)
  21. visitor_name (15.2)
  22. process_visitor_name (15.2)
  23. student_list_update (not in book)

Main Solutions Page