Le précompilateur Oracle Pro*C/C++ ouvre la voie à une intégration transparente des instructions SQL au sein des programmes en langage élevé. Cette section explore les rouages du développement d'applications avec Pro C/C++, mettant en lumière l'environnement spécial dans lequel ces applications opèrent et leur impact sur la conception des applications.
## Concepts clés de la programmation SQL intégrée
La programmation SQL intégrée fait référence aux instructions SQL placées à l'intérieur d'un programme d'application. Le programme d'application est alors appelé programme hôte, et le langage dans lequel il est écrit est appelé langage hôte. Par exemple, Pro*C/C++ permet d'imbriquer des instructions SQL dans un programme hôte écrit en C ou en C++.
### Syntaxe SQL intégrée
Dans un programme d'application, vous pouvez librement mélanger des instructions SQL complètes avec des instructions C complètes et utiliser des variables ou des structures C dans des instructions SQL. La seule exigence spéciale pour intégrer des instructions SQL dans votre programme hôte est de les commencer par les mots-clés EXEC SQL et de les terminer par un point-virgule.
### SQL statiques et dynamiques
La plupart des programmes d'application sont conçus pour traiter des instructions SQL statiques et des transactions fixes. Cependant, certaines applications peuvent être amenées à accepter et traiter n'importe quelle instruction SQL valide à l'exécution. La SQL dynamique est une technique de programmation avancée qui permet à votre programme d'accepter ou de construire des instructions SQL à l'exécution.
### Blocs PL/SQL intégrés
Pro*C/C++ traite un bloc PL/SQL comme une seule instruction SQL intégrée. Vous pouvez placer un bloc PL/SQL n'importe où dans un programme d'application où vous pouvez placer une instruction SQL. Pour intégrer du PL/SQL dans votre programme hôte, vous déclarez simplement les variables à partager avec PL/SQL et encadrez le bloc PL/SQL avec les mots-clés EXEC SQL EXECUTE et END-EXEC.
### Variables hôtes et indicateurs
Les variables hôtes sont la clé de la communication entre Oracle et votre programme. Une variable hôte est une variable scalaire ou agrégée déclarée en C et partagée avec Oracle, ce qui signifie que votre programme et Oracle peuvent référencer sa valeur.
### Types de données Oracle
Oracle reconnaît deux types de données : internes et externes. Les types de données internes spécifient comment Oracle stocke les données dans les colonnes de la base de données. Oracle utilise également des types de données internes pour représenter des pseudocolonnes de base de données.
### Utilisation des arrays
Pro*C/C++ vous permet de définir des variables hôtes de tableau (appelées tableaux hôtes) et des tableaux de structures et de les manipuler avec une seule instruction SQL.
### Équivalence des types de données
Pro*C/C++ ajoute de la flexibilité à vos applications en vous permettant d'équivalencer les types de données. Cela signifie que vous pouvez personnaliser la façon dont Oracle interprète les données d'entrée et formate les données de sortie.
### Zones SQL privées, curseurs et ensembles actifs
Pour traiter une instruction SQL, Oracle ouvre une zone de travail appelée zone SQL privée. La zone SQL privée stocke les informations nécessaires à l'exécution de l'instruction SQL. Un identifiant appelé curseur vous permet de nommer une instruction SQL, d'accéder aux informations de sa zone SQL privée et, dans une certaine mesure, de contrôler son traitement.
### Transactions, erreurs et avertissements
Une transaction est une série d'instructions SQL logiquement liées que Oracle traite comme une unité. Toutes les instructions de manipulation de données exécutées depuis la dernière définition de données, l'instruction COMMIT ou ROLLBACK, composent la transaction en cours.
### Support de la syntaxe SQL99
Les fonctionnalités Oracle sont conformes à la norme ANSI/ISO SQL99, y compris les jointures conformes à ANSI. Pro*C/C++ prend en charge toutes les fonctionnalités SQL99 prises en charge par la base de données Oracle.
##
En somme, le développement d'une application SQL intégrée implique plusieurs étapes, de la précompilation à la compilation et au lien des modules de programme. Des directives sont fournies pour guider la syntaxe SQL intégrée, les conventions de codage et les caractéristiques spécifiques à C.
Comprendre les concepts du précompilateur Pro*C/C++ ouvre la voie à la création d'applications robustes et performantes, intégrant harmonieusement la puissance du langage SQL avec la flexibilité des langages C et C++.
### Références
- docs.oracle.com, [Pro*C/C++ Programmer's Guide - Precompiler Concepts](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_01int.htm#g10729) (Page consulté le 16 février 2024)
- Kyte, T. (2010). _Expert Oracle Database Architecture: Oracle Database 9i, 10g, and 11g Programming Techniques and Solutions._ Apress.
- McDonald, C., Katz, C., & Beck, C. (2009). _Mastering Oracle PL/SQL: Practical Solutions._ Apress.
Commentaires