Table des matières

Lab9

Ex 2

Créer un déclecheur POST-QUERY au niveau du bloc de données avec le code PL/SQL suivant:

SELECT nom INTO :BIB_EMPRUNT.MEMBRE_NOM
FROM BIB_MEMBRE WHERE NUMERO = :BIB_EMPRUNT.MEMBRE;
 
SELECT prenom INTO :BIB_EMPRUNT.MEMBRE_PRENOM
FROM BIB_MEMBRE WHERE NUMERO = :BIB_EMPRUNT.MEMBRE;
 
SELECT titre INTO :BIB_EMPRUNT.TITRE
FROM BIB_DOCUMENT WHERE ISBN = :BIB_EMPRUNT.ISBN;

Ex 3

Créer un déclencheur WHEN-VALIDATE-ITEM au niveau élément ISBN :

SELECT titre INTO :BIB_EMPRUNT.TITRE
FROM BIB_DOCUMENT WHERE ISBN = :BIB_EMPRUNT.ISBN;

Même principe avec l'élément MEMBRE :

BEGIN
  SELECT nom INTO :BIB_EMPRUNT.MEMBRE_NOM
  FROM BIB_MEMBRE WHERE NUMERO = :BIB_EMPRUNT.MEMBRE;
  SELECT prenom INTO :BIB_EMPRUNT.MEMBRE_PRENOM
  FROM BIB_MEMBRE WHERE NUMERO = :BIB_EMPRUNT.MEMBRE;
END;

Ex 4

Créer un déclencheur WHEN-WINDOW-ACTIVATED au niveau du formulaire avec EXECUTE_QUERY;. Il faut noter que l'ordre des blocs de données est important puisque le bloc de données maître doit précéder le bloc de données détail.

Ex 5

DECLARE
	n NUMBER;
	une_exception EXCEPTION;
 
BEGIN
  SELECT COUNT(*) INTO n FROM BIB_EMPRUNT
  WHERE MEMBRE = :BIB_EMPRUNT.MEMBRE;
  IF n>5 THEN
  	Message('Le nombre d''emprunts de ce membre a atteint sa limite.');
  	RAISE une_exception;
  END IF;
END;

Ex 6

Créer un groupe d'enregistrement avec la requête :

SELECT numero
FROM bib_exemplaire
WHERE numero 
AND NOT IN (SELECT exemplaire FROM bib_emprunt WHERE ISBN = :BIB_EMPRUNT.ISBN)

Créer une LOV sur ce groupe d'enregistrement. Spécifier cette LOV pour l'élément EXEMPLAIRE.

Ex 7

Créer un déclencheur WHEN-VAIDATE-ITEM au niveau d'un élément avec le code :

:BIB_EMPRUNT.RENDULE := SYSDATE+30;

Ne pas oublier d'aller dans les propriétés de l'élément et modifier la valeur Mettre à jour seulement si NULL à Oui.