You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.6 KiB
58 lines
1.6 KiB
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
char vdateRep[11];
|
|
char vheureRep[6];
|
|
char vidRep[6];
|
|
int vnbPlaces;
|
|
int vnbPlacesRes;
|
|
int vTabNbPlacesRes[500];
|
|
int i, nb, fin=1;
|
|
|
|
connexion();
|
|
EXEC SQL DECLARE REP CURSOR FOR SELECT to_char(dateRep, 'dd/mm/yyyy'), heureRep, idRep, nbPlaces
|
|
FROM representation
|
|
where dateRep>sysdate order by 1, 2;
|
|
|
|
printf("\n liste des représentations");
|
|
printf("\n dateRep Heure Rep Id Rep Nb places rés./Insc.");
|
|
// traitement curseur pour en tete représentation
|
|
EXEC SQL OPEN REP;
|
|
EXEC SQL FETCH REP INTO :vdateRep, :vheureRep, :vidRep, :vnbPlaces;
|
|
if (sqlca.sqlcode == +1403) {fin = 0;}
|
|
while (fin!=0)
|
|
{
|
|
vdateRep[10]='\0'; vheureRep[5]='\0';vidRep[5]='\0';
|
|
printf("\n %s.....%s......%s\n",vdateRep,vheureRep,vidRep); // en tete rep
|
|
|
|
// gestion détail places
|
|
EXEC SQL SELECT count(nbPlacesRes)
|
|
into :nb
|
|
FROM inscription I, representation R
|
|
where dateRep>sysdate and R.idRep=I.idRep and I.idRep=:vidRep;
|
|
|
|
vnbPlacesRes=vnbPlaces;
|
|
if (nb>0){ // si on a des inscriptions
|
|
EXEC SQL SELECT nbPlacesRes
|
|
into :vTabNbPlacesRes
|
|
FROM inscription I, representation R
|
|
where dateRep>sysdate and R.idRep=I.idRep and I.idRep=:vidRep;
|
|
for (i=0; i<nb;i++)
|
|
{
|
|
printf("\n ................%d\n",vTabNbPlacesRes[i]); // detail
|
|
vnbPlacesRes=vnbPlacesRes - vTabNbPlacesRes[i];
|
|
}
|
|
printf("\nNombre de places disponibles: %d\n",vnbPlacesRes); // fin rep
|
|
}
|
|
EXEC SQL FETCH REP INTO :vdateRep, :vheureRep, :vidRep, :vnbPlaces;
|
|
if (sqlca.sqlcode == +1403) {fin = 0;}
|
|
}
|
|
EXEC SQL CLOSE REP;
|
|
|
|
deconnexion(1);
|
|
return(0);
|
|
}
|
|
|
|
|