\documentclass[12pt]{article} %\usepackage{moodle} \usepackage{sanssolmoodle} \usepackage[T1]{fontenc} \begin{document} \begin{quiz}{Quizz Cours PRO*C, Chapitre 1.5 a 1.7} \begin{multi}[multiple, points=1]{01-SQLCA.H} La structure de donn\'ees SQLCA sert \`a quoi ? \item* \`a stocker les donn\'ees du compte rendu d'ex\'ecution d'un ordre SQL \item \`a remplir des lignes de code dans le programme \end{multi} \begin{multi}[points=1]{02-SQLCA.H} La variable sqlcode sert \`a quoi ? \item* stocker le code retour r\'esultant de l'ex\'ecution de l'ordre SQL \item stocker le code du traitement SQL \end{multi} \begin{multi}[multiple, points=1]{03-SQLCA.H} La variable sqlca.sqlcode peux prendre plus valeurs.\\ Quelle valeur correspond \`a sa d\'efinition ? \item* =0 - traitement d\'eroul\'e sans erreur \item =0 - aucun code retour \item* >0 - traitement d\'eroul\'e sans erreur mais avec un code d'\'etat \item >0 - traitement en erreur \item* < 0 - traitement avec des erreurs \item <0 - traitement d\'eroul\'e sans erreur \end{multi} \begin{multi}[multiple, points=1]{04-SQLCA.H} La variable sqlerrd[2] sert \`a quoi ? \item \`a se trouver entre la position 1 et 3 \item* donner le nombre de lignes modifi\'ees ou rajout\'ees ou ramen\'ees par un ordre SQL \end{multi} \begin{multi}[multiple, points=1]{05-SQLCA.H} 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-SQLCA.H} O\`u doit-on utiliser la structure sqlca pour connaitre le compte rendu de la commande SQL ex\'ecut\'ee ? \item* Apr\`es chaque commande SQL \item Avant chaque commande SQL \end{multi} \begin{multi}[multiple, points=1]{07-WHENEVER} A quoi sert la commande WHENEVER ? \item A faire n'importe, quoi n'importe o\`u et n'importe quand \item* A permettre d'utiliser des directives qui sp\'ecifient le traitement \`a effectuer en cas d'erreur. \end{multi} \begin{multi}[multiple, points=1]{08-WHENEVER} A quoi correspondent les valeurs possibles du premier param\`etre (type d'erreur) ? \item* SQLERROR : \'equivalent au test sqlca.sqlcode < 0 \item SQLWARNING : \'equivalent au test sqlca.sqlcode < 0 \item* SQLWARNING : \'equivalent au test sqlca.sqlwarn[0] = 'W' \item* NOT FOUND : sqlca.sqlcode = +1403 \item NOT FOUND : on ne trouve pas le compte rendu d'ex\'ecution de la commande SQL \end{multi} \begin{multi}[multiple, points=1]{09-WHENEVER} A quoi correspond la valeur du deuxi\`eme param\`etre (type d'action) ? \item* STOP : arr\`ete le programme avec ROLLBACK \item STOP : arr\`ete la commande SQL \item* CONTINUE : continue le traitement m\^eme si la commande SQL est en erreur \item* GOTO passe le contr\^ole du programme au label suivant cette valeur \item GOTO passe le contr\^ole du programme au sous-programme GoKu \item* DO appelle une fonction qui suit cette valeur \end{multi} \begin{multi}[multiple, points=1]{10-Indicateur} A quoi sert un indicateur de variables ? \item\`a indiquer la variable \item* \`a pour travailler avec les valeurs NULL \item* \`a connaitre lse valeurs particuil\`eres des variables \end{multi} \begin{multi}[multiple, points=1]{11-Indicateur} Un indicateur de variable h\^ote doit ? \item* \^etre du tye short \item un indic \item* \^etre pr\'ec\'ed\'e de ':' lorsqu'il est utilis\'e dans une requ\^ete SQL \item* \^etre pr\'ec\'ed\'e par une variable h\^ote dans un ordre SQL \end{multi} \begin{multi}[points=1]{12-Indicateur} Quelles sont les bonnes associations valeur - explication pour une variable indicateur ? \item 0 - pas d'enregistrement en base \item* 0 - pas de probl\`emes \item -1 - la valeur de la variable h\^ote associ\'e est NOT NULL \item* -1 - la valeur de la variable h\^ote associ\'e est NULL \item >0 - la valeur retourn\'ee dans la variable h\^ote est enti\`ere \item* >0 - la valeur retourn\'ee dans la variable h\^ote est tronqu\'ee \end{multi} \begin{multi}[multiple, points=1]{13-Indicateur} Quelles sont les instructions utilisant correctement l'indicateur indic-var ? \item* EXEC SQL SELECT nomproduit INTO :varNomPdt:indic-var FROM Tproduit WHERE noproduit = 'P001'; \item EXEC SQL SELECT nomproduit INTO :indic-var FROM Tproduit WHERE noproduit = 'P001'; \item* IF (indic-var == -1){varNomPdt = ''} \item* EXEC SQL UPDATE Tproduit SET nomproduit = :varNomPdt INDICATOR :indic-var; \item EXEC SQL UPDATE Tproduit SET nomproduit = :varNomPdt:indic-var; \end{multi} \begin{multi}[multiple, points=1]{14-Curseur} Quelle est la bonne d\'eclaration d'un curseur ? \item EXEC SQL DECLARE nomCurs IS SELECT nomproduit FROM Tproduit; \item* EXEC SQL DECLARE nomCurs FOR SELECT nomproduit FROM Tproduit; \end{multi} \begin{multi}[multiple, points=1]{15-Curseur} Quelle est la bonne instruction d'ex\'ecution d'un curseur ? \item EXEC SQL EXECUTE nomCurs; \item* EXEC SQL OPEN nomCurs; \end{multi} \begin{multi}[multiple, points=1]{16-Curseur} Quelle est la bonne instruction de lecture d'une ligne courante d'un curseur ? \item* EXEC SQL FETCH nomCurs INTO :varNomPdt:indic-var; \item* EXEC SQL FETCH nomCurs INTO :varNomPdt; \end{multi} \begin{multi}[multiple, points=1]{17-Curseur} Comment sait-on qu'il n'y a plus de lignes dans la table du r\'esultat du curseur ? \item sqlcode = 1401; \item* sqlca.sqlcode = 1403; \item nomCurs\%NOT FOUND; \end{multi} \begin{multi}[multiple, points=1]{18-Curseur} Que retourne la lecture d'un curseur ferm\'e ? \item la derni\`ere ligne lue du curseur \item* une erreur; \end{multi} \begin{multi}[multiple, points=1]{19-Curseur} Qu'est ce qu'implique l'ouverture d'un curseur ? \item* la cr\'eation de la table contenant le r\'esultat de la requ\^ete associ\'ee \`a ce curseur \item la lecture de sa premi\`ere ligne \end{multi} \begin{multi}[multiple, points=1]{20-Curseur} Un curseur peut retourner combien de ligne ? \item* 0 \item* 1 \item* >1 \end{multi} \end{quiz} \end{document}