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
 ...

Part of the 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])
}
}
}