Pascal LAFOURCADE 4 years ago
parent 7efa04fb34
commit cbe8a1003d

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

Loading…
Cancel
Save