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.

173 lines
5.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

\documentclass[a4paper,11pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[a4paper,hmargin=20mm,vmargin=30mm]{geometry}%\usepackage{fullpage}
\usepackage{url}
\usepackage{comment}
\usepackage{fancyhdr}% fancy header
\usepackage{times}
\usepackage{fancyvrb}
\fancypagestyle{monstyle}{
%\fancyhead{}
\renewcommand{\headrulewidth}{1pt}
%% %\renewcommand{\footrulewidth}{0.4pt}
% \fancyhead[LE]{\slshape \thepage/ \pageref{LastPage}}
%% \fancyhead[RO]{\slshape \thepage/ \pageref{LastPage}}
%\fancyhf{}
%\fancyhead[LE]{\slshape LE}
%\fancyhead[CE]{\slshape CE}
%\fancyhead[RE]{\slshape RE}
\fancyhead[LO]{\bfseries 2020-2021 BD PLS/SQL\rightmark}
%\fancyhead[CO]{\slshape APF}
\fancyhead[RO]{\bfseries ~\leftmark }
%% %\fancyfoot{}
% \fancyfoot[LE,RO]{}
\fancyfoot[CO,CE]{}%\slshape\thepage/\pageref{LastPage}}
%% %\fancyfoot[LO,RE]{\small\slshape \ddmmyyyydate version du \today}
}
% \pagestyle{fancy}
\usepackage{amsmath}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{exercice}{Exercice}
\pagestyle{monstyle}
\usepackage{amsmath}
\usepackage{amsthm}
\newcommand{\code}[1]{\texttt{#1}}
\newcommand{\proc}{Pro$^{*}$C}
\begin{document}
\begin{center}
TP 4
\end{center}
\paragraph{Objectifs du TP :} mettre en œuvre le langage \proc{} pour gérer la connexion et la déconnexion à une base de données, créer une table, insérer des valeurs et lire des valeurs dans une table
\paragraph{Attention :} Vous allez travailler sous Unix afin daccéder
aux commandes permettant de compiler vos programmes \proc{}. Si
nécessaire, vous avez accès à SQLplus en utilisant la commande : \code{sqlplus login@kirov}
Assurez-vous lorsque vous êtes sous SQLplus que vous validez bien vos
requêtes si vous souhaitez ne pas avoir de problèmes en \proc{} (en
utilisant \code{COMMIT WORK}).
\paragraph{Programmation en \proc{} :} Réalisez vos programmes \proc{}
en utilisant votre éditeur de texte préféré, et veillez à enregistrer
les fichiers avec lextension \code{.pc}. Pour précompiler, compiler
et linker votre programme, il faut utiliser la commande suivante :
\noindent \code{make -f /etc/oracle/proc.mk build EXE=FichierSansExtension OBJS=Fichier.o}
Cette commande va vous générer le fichier \code{.c}, le fichier \code{.o} et
lexécutable. Tous les fichiers auront le même nom. Choisissez-le donc
bien pour vous assurer quil représente bien ce que fait le programme
concerné.
\paragraph{Compte rendu :} Pour chaque question, donner le code du
programme, létat de la base (pour les tables concernées) avant et
après exécution du programme si une mise à jour a été effectuée et si
possible une copie de lécran au cours de lexécution.
%% \begin{SaveVerbatim}{VerbEnv}
%% Catégorie : numéro libellé
%% Num. véhic. Immat. Couleur Modèle
%% XXXXX XX-9999-XX X...X X...X
%% XXXXX XX-9999-XX X...X X...X
%% XXXXX XX-9999-XX X...X X...X
%% \end{SaveVerbatim}
\begin{exercice}
En reprenant les fonctions connexion et deconnexion vues en cours,
développez un programme \proc{} (\code{Q1.pc}) qui se connecte à la
base de données en demandant votre login et votre mot de passe puis se
déconnecte. Les messages suivants seront affichés en plus de ceux déjà
indiqués dans le cours:
\begin{enumerate}
\item Appel de la fonction connexion.
\item Appel de la fonction deconnexion.
\end{enumerate}
%% \begin{center}
%% \fbox{\BUseVerbatim{VerbEnv}}
%% \end{center}
\end{exercice}
\begin{exercice} \'Ecrire le programme \proc{} (\code{Q2.pc}) qui
reprend le programme écrit en Q1 et le complète pour créer la table
\code{tessai1 (id, num, unCar , chaine, uneDate)} où les colonnes
sont :
\begin{itemize}
\item \code{id} : chaine de 3 caractères,
\item \code{num} : numérique,
\item \code{unCar} : un seul caractère,
\item \code{chaine} : une chaine de caractères de longueur variable
dau plus 10 car,
\item \code{uneDate} : une date
\end{itemize}
Vous devez intégrer les contraintes suivantes: \code{id} est clé
primaire, \code{num} est une valeur comprise entre 100 et 199
(bornes comprises), \code{unCar} est soit \code{A}, soit
\code{B}, soit \code{C} chaine commence obligatoirement par \code{E}
\code{uneDate} est une date dont lannée est 2021.
Vérifiez sous sqlPlus, que la table est bien créée par \code{describe
tessai1}
\end{exercice}
\begin{exercice}
Ecrire le programme \proc{} (\code{Q3.pc}) qui reprend le programme
écrit dans l'exercice 1 et le complète pour insérer des valeurs dans
la table \code{tessai}.
\begin{itemize}
\item Par exemple, insérer : \code{T01, 100, C , Essai ,
01/03/2021} Vérifiez sous sqlPlus, que la table contient bien les
informations insérées.
\item Faire de nouvelles insertions en testant les différentes
contraintes. Vérifiez sous sqlPlus, les insertions ou les non
insertions !
\end{itemize}
\end{exercice}
\begin{exercice}
Ecrire le programme \proc{} (\code{Q4.pc}) qui reprend le programme
écrit dans l'exercice 1 et le complète pour lire une ligne de la table
\code{tessai}, par exemple lire la ligne dont \code{id=T01'} et
affiche les valeurs lues \code{(num, unCar, chaine et uneDate)}.
\end{exercice}
\end{document}