Advertisement
Fallstar

Untitled

May 29th, 2015
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 3.07 KB | None | 0 0
  1. --29
  2.  
  3. --rondeJoueurGrille
  4. CREATE OR REPLACE FUNCTION rondeJoueurGrille(p_idJoueur IN Joueurs.idJoueur%TYPE, p_idTournoi IN Tournois.idTournoi%TYPE, p_numRonde IN Parties.numRonde%TYPE) RETURN VARCHAR IS
  5.     v_resul VARCHAR(1);
  6.     v_adv NUMBER;
  7.     v_col VARCHAR(1);
  8. BEGIN
  9.  
  10.     IF resultatJoueurRonde(p_idJoueur, p_idTournoi, p_numRonde) = 1 THEN
  11.         v_resul := '+';
  12.     ELSIF resultatJoueurRonde(p_idJoueur, p_idTournoi, p_numRonde) = 0 THEN
  13.         v_resul := '-';
  14.     ELSE
  15.         v_resul := '=';
  16.     END IF;
  17.    
  18.     v_adv := classementJoueurTournoi(adversaireJoueurRonde(p_idJoueur, p_idTournoi, p_numRonde), p_idTournoi);
  19.     v_col := couleurJoueurRonde(p_idJoueur, p_idTournoi, p_numRonde);
  20.    
  21.     RETURN v_resul||v_adv||v_col;
  22. END;
  23.    
  24. --afficheLigneGrille
  25. CREATE OR REPLACE PROCEDURE afficheLigneGrille(p_idJoueur IN Joueurs.idJoueur%TYPE, p_idTournoi IN Tournois.idTournoi%TYPE) IS
  26.     v_nom Joueurs.nomJoueur%TYPE;
  27.     v_pre Joueurs.prenomJoueur%TYPE;
  28.     v_cat VARCHAR(4);
  29.     v_elo Joueurs.eloJoueur%TYPE;
  30.     v_lig Clubs.idLigue%TYPE;
  31. BEGIN
  32.  
  33.     SELECT nomJoueur, prenomJoueur, categorieJoueur(dateNaissanceJoueur, sexeJoueur), eloJoueur, idLigue
  34.     INTO v_nom, v_pre, v_cat, v_elo, v_lig
  35.     FROM Joueurs j
  36.     JOIN Clubs c ON j.idClub=c.idClub
  37.     WHERE idJoueur = p_idJoueur;
  38.  
  39.     DBMS_OUTPUT.PUT(' | ' || RPAD(classementJoueurTournoi(p_idJoueur, p_idTournoi), 2) || ' ' || RPAD(TRANSLATE(UPPER(v_nom), 'É', 'E'), 10) || ' ' || LPAD(TRANSLATE(UPPER(v_pre), 'É', 'E'), 10) || ' ' || LPAD(v_cat, 5) || ' ' || LPAD(v_elo, 5) || ' ' || LPAD(v_lig, 4));
  40.     DBMS_OUTPUT.PUT(' | ');
  41.    
  42.     FOR v_partie IN (SELECT * FROM Parties WHERE idTournoi = p_idTournoi AND (idJoueurBlancs = p_idJoueur OR idJoueurNoirs = p_idJoueur))
  43.     LOOP
  44.         DBMS_OUTPUT.PUT(LPAD(rondeJoueurGrille(p_idJoueur, p_idTournoi, v_partie.numRonde),4));
  45.        
  46.     END LOOP;
  47.    
  48.     DBMS_OUTPUT.PUT(' | ' || RPAD(nbPointsJoueurTournoi(p_idJoueur, p_idTournoi), 3) || ' | ' || LPAD(cumulatifJoueurTournoi(p_idJoueur, p_idTournoi), 4) || ' | ' || LPAD(performanceEloJoueurTournoi(p_idJoueur, p_idTournoi), 5) || ' | ');
  49.    
  50.    
  51.    
  52.     DBMS_OUTPUT.PUT_LINE('');
  53. END;   
  54.  
  55.  
  56. --affichageGrilleAmericaine
  57. CREATE OR REPLACE PROCEDURE affichageGrilleAmericaine(p_idTournoi IN Tournois.idTournoi%TYPE) IS
  58. BEGIN
  59.  
  60.     affichageGrilleBord(p_idTournoi);
  61.     FOR v_joueur IN (SELECT DISTINCT idJoueur, classementJoueurTournoi(idJoueur, idTournoi) AS classment
  62.             FROM Joueurs j
  63.             JOIN Parties p ON idJoueurBlancs=idJoueur OR idJoueurNoirs=idJoueur
  64.             WHERE idTournoi = p_idTournoi
  65.             ORDER BY classment)
  66.     LOOP
  67.         afficheLigneGrille(v_joueur.idJoueur, p_idTournoi);
  68.     END LOOP;
  69.     affichageGrilleBord(p_idTournoi);
  70. END;
  71.  
  72.  
  73. --affichageGrilleBord
  74. CREATE OR REPLACE PROCEDURE affichageGrilleBord(p_idTournoi IN Tournois.idTournoi%TYPE) IS
  75.         v_nbRonde NUMBER;
  76. BEGIN
  77.         DBMS_OUTPUT.PUT('+-------------------------------------------+');
  78.         SELECT nbRondesTournoi INTO v_nbRonde
  79.         FROM Tournois
  80.         WHERE idTournoi = p_idTournoi;
  81.         FOR i IN 1..v_nbRonde
  82.         LOOP
  83.                 DBMS_OUTPUT.PUT('----');
  84.         END LOOP;
  85.         DBMS_OUTPUT.PUT_LINE('--+-----+------+-------+');
  86. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement