
Bonjour
J'ai un problème sur le remplissage du tableau Joueurs, lors de mes inscriptions. Pour une seule inscription, il me crée 12 enregistrements dans le tableau Joueur. J'ai essayé le DISTINCT lors du Select count en point 2), mais rien n'a changé.
Y a- t-il autre moyen pour que le curseur lise un enregistrement exact et charge un enregistrement exact ?
Merci.
SCRIPT:
--2) Compter les joueurs inscrits à un tournoi
nbrejoueurinscrit := 0;--compteur à zéro, pour compter le nombre des joueurs inscrits à un tournoi
select count(i.numlicence) into nbrejoueurinscrit
from dp_inscription i, dp_joueur j
where i.numlicence = j.numlicence --lien entre les 2 tables sur N°licence
and i.numtournoi = :dp_inscription.numtournoi;--ici le bloc dp_inscrit pointe sur numtournoi
Message('Nb de joueurs inscrit au tournoi : '||nbrejoueurinscrit);--Affichernombre joueurs inscrits
--3)Si nombre joueurs inscrits supérieurs à 0, Gestion du curseur "inscrire"
if nbrejoueurinscrit > 0 then
BEGIN
--For inscrire into rec
open inscrire;
go_block('dp_joueurinscrit');--bloc des joueurs qui sont réellemnt inscrits à un tournoi sélectionné.
LOOP
FETCH inscrire into rec;
EXIT WHEN inscrire%NOTFOUND;
if :dp_joueurinscrit.numlicence is not null
then create_record;
end if;
--4)Charger la récup d'infos de la table Joueur à l'écran
:dp_joueurinscrit.numlicence := rec.numlicence;--j'affecte la récupération des infos de la table Joueur par REC dans la zone à afficher à l'écran
:dp_joueurinscrit.nom := rec.nom;--j'affecte la récupération....
:dp_joueurinscrit.prenom := rec.prenom;--j'affecte la récupération....
:dp_joueurinscrit.classementelo := rec.classementelo;--j'affecte la récupération....
END LOOP;
close inscrire;
END;