Examen n°2 : Devoir maison TD 26

UE 3 (éléments finis fluide et structure)*. Modélisation et méthodes numériques CM/TD/TP : 30h examen écrit. Modélisation numérique des transferts CM/TD/TP  ...


un extrait du document



Examen n°2 : Devoir maison TD 26

Attar Tarik Tp 261

Question 1)

Pour cette question, on peut voir qu’il faut d’abord recupèrer tout les numFilm d’un realisateur, puis pour chaque numFilm, compter le nombre d’exemplaire.

La requête: SELECT NumFilm FROM FILM WHERE realisateur = 'realisateur';
Cette requête renvoie plusieurs lignes, il faudra donc utiliser un curseur parametré.
Puis il faut pour chaque « retour » du curseur, compter le nombre de film grâce à la requête : SELECT count(*) FROM EXEMPLAIRE WHERE NumFilm =’retour_curseur’
Si une valeur de retour est infèrieure à 3, alors la variable qui sera retournée prend la valeur 0.


CREATE OR REPLACE FUNCTION REALISATEUR (
numRealisateur Film.Realisateur%TYPE) RETURN INTEGER AS
nb INTEGER;
CURSOR numFilm IS SELECT NumFilm FROM FILM WHERE realisateur = numRealisateur;
BEGIN
nb:=1;
OPEN numFilm;
LOOP
FETCH numFilm (realisateur) INTO numfilm;
EXIT when numfilm%NOTFOUND;
SELECT count (*) into nombre_exemplaire
FROM exemplaire
WHERE numfilm=numFilm;
IF nombre_exemplaire 0
THEN RAISE_APPLICATION_ERROR(-20010, ‘Update impossible’);
ELSE
DBMS_OUTPUT.put_line(‘Mise à jour de la table INDIVIDU’) ;
END IF;

END;
/


























Question 3)

Ici il faut utiliser les méta-données grâce à un ResultSetMetaData. Puis utiliser les méthodes de cet objet, afin de recupèrer le nombre de colonnes et leurs noms que je stockerais dans un tableau et affichée.

Import java.sql.*;


Public class Question 3{
Public static void affcheNomColonnes (Resultset rs) throws SQLException {
ResultSetMetaData metadata =rs.getMetaData() ;
String [] noms = new String [metadata.getColumnCount()];
for (int i = 0; i < noms.length; i++){
String nomColonne = metadata.getColumnName (i+1);
noms[i] = nomColonne;
system.out.println(“La Colonne n° : “ +i +” a pour nom “ + noms[i])
}

}

}