\documentclass[12pt]{article} \usepackage{moodle} %\usepackage{sanssolmoodle} \begin{document} \begin{quiz}{Quizz Cours PRO*C, Chapitre 1 a 1.4} \begin{multi}[multiple, points=1]{01-Interface PRO*C} Le PRO*C c'est : \item* une interface entre le langage C et le SGBD Oracle \item le Professionnel Etoile C \item* une interface de pr\'ecompilation o\`u les ordres SQL pr\'esents dans le code C sont traduits par un pr\'ecompilateur \item une interface entre un PROfessionnel et un Client \end{multi} \begin{multi}[points=1]{02-Structure} Un fichier PRO*C se structure de la m\^eme mani\`ere qu'un fichier C ? \item* VRAI \item FAUX \end{multi} \begin{multi}[multiple, points=1]{03-Structure} Pour acc\`eder aux donn\'ees de la base de donn\'ees que faut-il faire ? \item* mettre en place la connexion et d\'econnexion \`a la base de donn\'ees \item Prendre Rapidement en Otage le Client \item* Se servir de commandes SQL (SELECT, INSERT, ...) \end{multi} \begin{multi}[multiple, points=1]{04-INCLUDE} Quelle structure C doit-on inclure dans le programme PRO*C pour connaitre les r\'esultats d'un ordre SQL? \item Aucune \item* SQLCA.H \item PL/SQL \end{multi} \begin{multi}[multiple, points=1]{05-INCLUDE} Quelle est la bonne syntaxe pour inclure le fichier SQLCA ? \item INCLUDE SQLCA.H; \item* EXEC SQL INCLUDE SQLCA.H; \item SQLCA.H; \end{multi} \begin{multi}[multiple, points=1]{06-Variables} La d\'eclaration des variables h\^otes s'effectue exactement comme en C ? \item* VRAI \item FAUX \end{multi} \begin{multi}[multiple, points=1]{07-Variables} Les variables h\^otes sont utilis\'ees o\`u ? \item uniquement dans les ordres SQL \item* dans les ordres SQL et dans le programme C \end{multi} \begin{multi}[multiple, points=1]{08-Variables} Les d\'eclarations ci-dessous sont-elles justes ?\\ int vnbOccurence;\\ VARCHAR vNom[31]; \item* VRAI \item FAUX \end{multi} \begin{multi}[multiple, points=1]{09-Variables} Quelles sont les variables qui sont bien utilis\'ees ? \item DATE \item FROM \item* EXEC SQL SELECT fonction INTO :vfonction FROM TEmploi WHERE noEmp = 501; \item* EXEC SQL UPDATE TEmploi SET salaire = :vSalaire WHERE noEmp = 501; \item EXEC SQL UPDATE TEmploi SET salaire = vSalaire WHERE noEmp = 501; \end{multi} \begin{multi}[multiple, points=1]{10-Variables} Quelles sont les affirmations ci-dessous qui sont vraies ? \item int peut \^etre utilis\'e en C pour recevoir la valeur d'une colonne NUMBER(10,2) \item* float peut \^etre utilis\'e en C pour recevoir la valeur d'une colonne NUMBER(10,2) \item* int peut \^etre utilis\'e en C pour recevoir la valeur d'une colonne NUMBER(10) \end{multi} \begin{multi}[multiple, points=1]{11-Connexion} Que doit-on passer \`a l'instruction CONNECT comme param\`etre ? \item* le login \item la connexion \item* le mot de passe \item* le nom du serveur h\^ote \end{multi} \begin{multi}[points=1]{12-Connexion} Que doit-on faire pour s'assurer que la connexion soit viable ? \item afficher \`a l'utilisateur le message Connexion r\'eussie avec succ\`es. \item* tester que la variable sqlcq.sqlcode soit bien \'egale \`a 0 \end{multi} \begin{multi}[multiple, points=1]{13-Deconnexion} Quel est le but de la fonction d\'econnexion ? \item* ex\'ecuter le COMMIT si tout c'est bien pass\'e \item rajouter du code \`a mon programme \item* ex\'ecuter le ROLLBACK s'il y a une erreur \end{multi} \begin{multi}[multiple, points=1]{14-Corps de l'application} Comment int\'egrer une instruction SQL de cr\'eation de table dans le programme PRO*C ? \item CREATE TABLE TLigne(ligne VARCHAR2(200)); \item* EXEC SQL CREATE TABLE TLigne(ligne VARCHAR2(200)); \end{multi} \begin{multi}[multiple, points=1]{15-Corps de l'application} Comment int\'egrer une instruction SQL d'insertion d'une ligne dans une table dans le programme PRO*C ? \item INSERT INTO TLigne VALUES('TEST'); \item* EXEC SQL INSERT INTO TLigne VALUES('TEST'); \item* EXEC SQL INSERT INTO TLigne(ligne) VALUES('TEST'); \end{multi} \begin{multi}[multiple, points=1]{16-Corps de l'application} Comment int\'egrer une instruction SQL de mise \`a jour d'une ligne dans une table dans le programme PRO*C ? \item* EXEC SQL UPDATE TLigne SET ligne = 'TEST2' WHERE ligne = 'TEST'; \item UPDATE TLigne SET ligne = 'TEST2' WHERE ligne = 'TEST'; \end{multi} \begin{multi}[multiple, points=1]{17-Corps de l'application} Comment int\'egrer une instruction SQL de suppression d'une ligne dans une table dans le programme PRO*C ? \item* EXEC SQL DELETE FROM TLigne WHERE ligne = 'TEST'; \item DELETE FROM TLigne WHERE ligne = 'TEST'; \end{multi} \begin{multi}[multiple, points=1]{18-Corps de l'application} Comment int\'egrer une instruction SQL de suppression d'une table dans le programme PRO*C ? \item DROP TABLE TLigne PURGE; \item* EXEC SQL DROP TABLE TLigne; \end{multi} \begin{multi}[multiple, points=1]{19-Corps de l'application} Comment int\'egrer une instruction SQL pour s\'electionner une ligne d'une table dans le programme PRO*C ? \item* EXEC SQL SELECT fonction INTO :vfonction FROM TEmploi WHERE noEmp = 501; \item EXEC SQL SELECT fonction FROM TEmploi WHERE noEmp = 501; \item SELECT fonction INTO :vfonction FROM TEmploi WHERE noEmp = 501; \end{multi} \begin{multi}[multiple, points=1]{20-Corps de l'application} Quelles sont les instructions ci-dessous qui sont justes ? \item* EXEC SQL TRUNCATE TABLE TEmploi; \item EXEC SQL SELECT fonction INTO :vfonction FROM TEmploi; \item* EXEC SQL UPDATE TLigne SET ligne = 'TEST2' WHERE ligne = 'TEST'; \item EXEC SQL UPDATE TLigne SET ligne = vligne WHERE ligne = 'TEST'; \end{multi} \end{quiz} \end{document}