SQL
Mise à jour : novembre 2007
Le langage SQL (Structured Query Language) permet de communiquer avec une base de données, afin de définir, interroger, modifier et contrôler les données. À l'aide de la syntaxe SQL, vous pouvez construire une instruction qui extrait les enregistrements obéissant aux critères que vous définissez.
Remarque : |
---|
Ces informations s'appliquent aux classes ODBC MFC. Si vous utilisez les classes DAO MFC, consultez la rubrique « Comparison of Microsoft Jet Database Engine SQL and ANSI SQL » dans l'aide de DAO. |
Les instructions SQL commencent par un mot réservé, tel que CREATE ou SELECT. SQL est un langage extrêmement puissant, car une seule instruction peut affecter une table complète.
Il existe de nombreuses versions du langage SQL, chacune ayant été développée pour un SGBD particulier. Les classes MFC de base de données admettent un ensemble d'instructions SQL qui correspond au projet de spécification SQL (1991) élaboré par X/Open et le CAE (Common Applications Environment) de SQL Access Group. Pour plus d'informations sur la syntaxe de ces instructions, consultez l'annexe C du guide ODBC SDKProgrammer's Reference sur le CD-ROM MSDN Library.
Cette rubrique explique :
les relations entre ODBC et SQL ;
les mots clés SQL utilisés le plus couramment par les classes de base de données ;
l'utilisation de SQL par les classes de base de données.
ODBC (Open Database Connectivity)
Les classes de base de données sont implémentées avec ODBC, qui utilise une interface au niveau de l'appel plutôt qu'au niveau de l'incorporation de commandes SQL dans le code. ODBC utilise SQL pour communiquer avec une source de données via les pilotes ODBC. Ces pilotes interprètent le langage SQL et le traduisent, si nécessaire, pour l'adapter à un format spécifique de base de données comme Microsoft Access. Pour plus d'informations sur l'utilisation de SQL par ODBC, consultez ODBC et le guide ODBC SDK Programmer's Reference sur le CD-ROM MSDN Library.
Classes de base de données
Les classes de base de données sont conçues pour vous permettre de manipuler et de mettre à jour les données d'une source de données existante. L'Assistant Création d'applications MFC, l'Assistant Consommateur ODBC MFC (accessible via Add Class) et les classes de base de données construisent automatiquement la plupart des instructions SQL.
Les classes de base de données utilisent une partie de SQL, connue sous le nom de langage de manipulation de données (DML, Data Manipulation Language). Ces commandes permettent d'utiliser tout ou partie d'une source de données, ainsi que d'ajouter, modifier et supprimer des enregistrements. Le tableau suivant répertorie les mots clés SQL les plus courants et leur utilisation par les classes de base de données.
Quelques mots clés SQL courants
Mot clé SQL |
Utilisé par les Assistants et les classes de base de données pour : |
---|---|
SELECT |
Identifier les tables et les colonnes de la source de données à utiliser. |
WHERE |
Appliquer un filtre qui restreint la sélection. |
ORDER BY |
Appliquer un ordre de tri au jeu d'enregistrements. |
INSERT |
Ajouter de nouveaux enregistrements à un jeu d'enregistrements. |
DELETE |
Supprimer des enregistrements d'un jeu d'enregistrements. |
UPDATE |
Modifier les champs d'un enregistrement. |
En outre, les classes de base de données acceptent les instructions CALL ODBC, que vous pouvez utiliser pour appeler une requête prédéfinie (ou procédure stockée) sur certaines sources de données. Le pilote de base de données ODBC interprète les instructions et les remplace par les commandes appropriées de chaque SGBD.
Remarque : |
---|
Certains SGBD ne prennent pas en charge les instructions CALL. |
Si les classes ne parviennent pas à identifier une instruction fournie par l'utilisateur dans CRecordset::Open, celle-ci est interprétée en tant que nom de table.
Pour plus d'informations sur la construction des instructions SQL par l'infrastructure, consultez Jeu d'enregistrements : sélection d'enregistrements par les jeux d'enregistrements (ODBC) et SQL : personnalisation de l'instruction SQL du jeu d'enregistrements (ODBC).
Les bases de données SQL utilisent des types de données similaires à ceux des langages C et C++. Pour plus d'informations sur ces ressemblances, consultez SQL : types de données SQL et C++ (ODBC).
Vous trouverez de plus amples informations sur SQL (y compris une liste des instructions SQL prises en charge, les types de données, la grammaire SQL principale ainsi qu'une bibliographie) dans le guide ODBC SDKProgrammer's Reference sur le CD-ROM MSDN Library.
Utilisation de SQL par les classes de base de données
Les jeux d'enregistrements issus des classes de base de données utilisent ODBC pour communiquer avec une source de données ; ODBC récupère les enregistrements de la source de données par l'envoi d'instructions SQL. Cette rubrique explique les relations entre les classes de base de données et SQL.
Un jeu d'enregistrements crée une instruction SQL en ajoutant les différents éléments de l'instruction SQL dans une chaîne CString. La chaîne est construite sous forme d'une instruction SELECT, laquelle retourne un ensemble d'enregistrements.
Lorsque le jeu d'enregistrements appelle ODBC pour envoyer une instruction SQL à la source de données, le gestionnaire de pilotes ODBC passe l'instruction au pilote ODBC, puis celui-ci l'adresse au SGBD sous-jacent. Le SGBD retourne comme résultat un ensemble d'enregistrements et le pilote ODBC retourne les enregistrements à l'application. Les classes de base de données permettent à vos programmes d'accéder au jeu de résultats dans une classe C++ de type sécurisé, dérivée de CRecordset.
Les rubriques suivantes proposent des informations complémentaires sur l'utilisation de SQL par les classes de base de données :