SQL : appels SQL directs (ODBC)
Mise à jour : novembre 2007
Cette rubrique explique :
quand utiliser les appels SQL directs ;
comment effectuer des appels SQL directs vers la source de données.
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. |
Quand utiliser les appels SQL directs
Pour créer des tables, les supprimer ou les modifier, pour créer des index, ou pour effectuer d'autres fonctions SQL qui modifient le schéma de la Source de données (ODBC), vous devez exécuter directement une instruction SQL sur la source de données à l'aide du langage DDL (Database Definition Language). Lorsque vous utilisez un Assistant pour créer un jeu d'enregistrements pour une table (au moment du design), vous pouvez choisir les colonnes de la table à faire figurer dans le jeu d'enregistrements. En revanche, il n'est pas possible d'utiliser les colonnes que vous-même ou un autre utilisateur de la source de données avez ajoutées à la table après que votre programme a été compilé. Les classes de base de données ne prennent pas en charge DDL directement, mais vous pouvez toujours écrire le code permettant de lier dynamiquement une nouvelle colonne à votre jeu d'enregistrements, lors de l'exécution. Pour plus d'informations sur la réalisation de cette liaison, consultez Jeu d'enregistrements : liaison dynamique de colonnes de données (ODBC).
Vous pouvez utiliser le SGBD lui-même pour modifier le schéma, ou tout autre outil permettant d'effectuer les fonctions DDL. Vous pouvez aussi utiliser les appels de fonction ODBC pour envoyer des instructions SQL, comme l'appel d'une requête prédéfinie (procédure stockée) ne retournant pas d'enregistrements.
Appels directs de fonctions SQL
Vous pouvez exécuter directement un appel SQL en utilisant un objet CDatabase Class. Définissez la chaîne de votre instruction SQL (généralement dans une chaîne CString) et passez-la à la fonction membre CDatabase::ExecuteSQL de votre objet CDatabase. Si vous utilisez les appels de fonction ODBC pour transmettre une instruction SQL qui retourne normalement des enregistrements, les enregistrements sont ignorés.