@ -529,8 +529,7 @@ Nombre de personnels total sur l'hopital : ZZ2
\begin { SaveVerbatim} { questionune}
int main(int argc, char** argv)
{
int main(int argc, char** argv){
varchar vnom[20];
varchar vprenom[20];
varchar vhopital[20];
@ -540,80 +539,62 @@ int fin=1;
int vnbnom;
int vnbhopit;
int nb=1;
EXEC SQL WHENEVER SQLERROR DO sql_ error("Oracle error\n ");
printf("\n Appel de la fonction connexion");
connexion();
printf("\n Appel de la fonction deconnexion");
/*----------------------------------lecture----------------------------*/
EXEC SQL WHENEVER SQLERROR DO sql_ error("Oracle error\n ");
/* SELECT p.Nom, p.Prenom, h.Nom FROM PERSONNEL p, HOPITAL h WHERE h.id_ hopital = p.id_ hopital and p.id_ personnel='PE01'; */
/* printf("\nUn exemple PE01 \n ");*/
EXEC SQL SELECT p.Nom, p.Prenom, h.Nom INTO :vnom, :vprenom, :vhopital FROM PERSONNEL p, HOPITAL h WHERE h.id_ hopital = p.id_ hopital and p.id_ personnel='PE01';
EXEC SQL SELECT p.Nom, p.Prenom, h.Nom INTO :vnom, :vprenom, :vhopital
FROM PERSONNEL p, HOPITAL h
WHERE h.id_ hopital = p.id_ hopital and p.id_ personnel='PE01';
vnom.len=strlen(vnom.arr);
vprenom.len=strlen(vprenom.arr);
vhopital.len=strlen(vhopital.arr);
printf("\n TEST pour PE01 : Nom : % .*s prenom : % .*s hopital : % .*s \n ", vnom.len, vnom.arr, vprenom.len, vprenom.arr, vhopital.len,vhopital.arr);
printf("\n TEST pour PE01 : Nom : % .*s prenom : % .*s hopital : % .*s \n "
, vnom.len, vnom.arr, vprenom.len, vprenom.arr, vhopital.len,vhopital.arr);
printf("\n Affichage les hopitaux \n ");
/* SELECT COUNT(h.Nom) FROM HOPITAL h */
EXEC SQL SELECT COUNT(h.Nom) INTO :vnbhopit FROM HOPITAL h;
printf("\nNombre d'hopitaux est % d\n ",vnbhopit);
EXEC SQL DECLARE hopitaux CURSOR FOR SELECT Nom, id_ hopital FROM HOPITAL ORDER by Nom;
EXEC SQL DECLARE hopitaux CURSOR FOR SELECT Nom, id_ hopital
FROM HOPITAL ORDER by Nom;
EXEC SQL OPEN hopitaux;
EXEC SQL FETCH hopitaux INTO :vhopital, :vidhopital;
if (sqlca.sqlcode == 1403) { fin = 0;}
while (fin!=0)
{
while (fin!=0) {
vhopital.len=strlen(vhopital.arr);
printf("\n Affichage des personnels de l'hopital % .*s : \n ",vhopital.len,vhopital.arr);
/* SELECT COUNT(p.Nom) FROM PERSONNEL WHERE h.id_ hopital = p.id_ hopital; */
EXEC SQL SELECT COUNT(Nom) INTO :vnbnom FROM PERSONNEL WHERE id_ hopital = :vidhopital;
printf("\nNombre de personnel de l'hopital % .*s est % d\n ",vhopital.len,vhopital.arr, vnbnom);
/* SELECT p.Nom, p.Prenom FROM PERSONNEL p, WHERE h.id_ hopital = p.id_ hopital ORDER by p.prenom ; */
printf("\n Affichage des personnels de l'hopital % .*s : \n ",
vhopital.len,vhopital.arr);
EXEC SQL SELECT COUNT(Nom) INTO :vnbnom FROM PERSONNEL
WHERE id_ hopital = :vidhopital;
printf("\nNombre de personnel de l'hopital % .*s est % d\n ",
vhopital.len,vhopital.arr, vnbnom);
EXEC SQL DECLARE personnels CURSOR FOR SELECT Nom, Prenom FROM PERSONNEL WHERE id_ hopital = :vidhopital ORDER by prenom;
EXEC SQL OPEN personnels;
fini=1;
EXEC SQL FETCH personnels INTO :vnom, :vprenom;
if (sqlca.sqlcode == 1403) { fini = 0;}
while (fini!=0)
{
while (fini!=0){
vnom.len=strlen(vnom.arr);
vprenom.len=strlen(vprenom.arr);
printf("% d) Nom : % .*s Prenom : % .*s \n ", nb, vnom.len, vnom.arr, vprenom.len, vprenom.arr);
printf("% d) Nom : % .*s Prenom : % .*s \n ",
nb, vnom.len, vnom.arr, vprenom.len, vprenom.arr);
nb++;
EXEC SQL FETCH personnels INTO :vnom, :vprenom;
if (sqlca.sqlcode == 1403) { fini = 0;}
}
if (sqlca.sqlcode == 1403) { fini = 0;} }
EXEC SQL CLOSE personnels;
EXEC SQL FETCH hopitaux INTO :vhopital, :vidhopital;
if (sqlca.sqlcode == 1403) { fin = 0;}
}
printf(" Fini \n ");
EXEC SQL CLOSE hopitaux;
deconnexion(1);
return(0);
}
\end { SaveVerbatim}
\cache { % \begin { small}
\cache { \begin { small}
\BUseVerbatim { questionune}
% \end { small}
\end { small}
}
\begin { SaveVerbatim} { Insertion}