V.3. Exécuter des commandes SQL
Dans une même perspective, toute commande SQL, incluse
dans des sections spécialement marquées, peut être
exécutée à l'intérieur d'une application SQL
embarqué. Ces sections se présentent toujours de la
manière suivante :
EXEC SQL instructions_SQL ;
En ce qui concerne le mode par défaut, les instructions
ne sont validées que lorsque EXEC SQL COMMIT est
exécuté.
De même, l'interface SQL embarqué supporte aussi
la validation automatique des transactions via l'instruction EXEC SQL SET
AUTOCOMMIT TO ON.
Dans ce cas, chaque commande est automatiquement
validée. Ce mode peut être explicitement désactivé
en utilisant EXEC SQL SET AUTOCOMMIT TO OFF.
Voici un exemple permettant de créer une table :
V.4. Les variables hôtes
A. Notion aux variables hôtes
Aujourd'hui, la transmission de données entre le
programme C et le serveur de base de données est particulièrement
simple en SQL embarqué. C'est dans ce sens qu'il est possible d'utiliser
une variable C, dans une instruction SQL, simplement en la préfixant par
le caractère deux-points (« : »). Comme on peut le constater,
pour insérer une ligne dans la table individu on peut écrire :
EXEC SQL INSERT INTO individu VALUES (:var_num, 'Poustopol',
:var_prenom);
88
Pour pouvoir mettre en oeuvre un exploit, cette instruction
fait référence à deux variables C nommées var_num
et var_prenom et utilise aussi une chaîne littérale SQL
('Poustopol') pour illustrer que vous n'êtes pas restreint à
utiliser un type de données plutôt qu'un autre.
L'obtention d'informations dans l'environnement SQL, fait que
nous appelons les références à des variables C des
variables hôtes.
B. Déclaration des variables hôtes
En connaissant cela, il est dit que les variables hôtes
sont des variables de langage C identifiées auprès du
préprocesseur SQL. Pour cela, et pour être définies, les
variables hôtes doivent être placées dans une section de
déclaration, comme suit :
EXEC SQL BEGIN DECLARE SECTION; declarations_des_variables_C
EXEC SQL END DECLARE SECTION;
Pour pouvoir s'introduire, vous pouvez avoir autant de
sections de déclaration dans un programme que vous le souhaitez.
Grâce aux étapes précédentes, les
variables hôtes peuvent remplacer les constantes dans n'importe quelle
instruction SQL. Un premier accès est lorsque le serveur de base de
données exécute la commande, il utilise la valeur de la variable
hôte. Il en va de même lorsqu'une variable hôte ne peut pas
remplacer un nom de table ou de colonne. Ces choses étant
déjà dites, dans une instruction SQL, le nom de la variable est
précédé du signe deux-points (« : ») pour le
distinguer d'autres identificateurs admis dans l'instruction.
Plus loin, les initialisations sur les variables sont admises
dans une section de déclaration. Il s'agit surtout des sections de
déclarations qui sont traitées comme des variables C normales
dans le fichier de sortie du précompilateur. De ce fait, il ne faut donc
pas les redéfinir en dehors des sections de déclaration. C'est ne
pas tout, les variables qui n'ont pas pour but d'être utilisées
dans des commandes SQL peuvent être normalement déclarées
en dehors des sections de déclaration.
La puissance des variables en langage C ont leur portée
normale au sein du bloc dans lequel elles sont définies. Une fois de
plus, le préprocesseur SQL n'analyse pas le code en langage C. Par
contre, il ne respecte pas les blocs C. outre, pour le préprocesseur
SQL, les variables hôtes sont globales : il n'est pas possible que deux
de ces variables portent le même nom.
89
|