Partager via


ODBC : appel direct de fonctions API ODBC

Les classes de base de données fournissent une interface plus simple à une source de données que ODBC. Par conséquent, les classes n’encapsulent pas toutes les API ODBC. Pour toutes les fonctionnalités qui se trouvent en dehors des capacités des classes, vous devez appeler directement les fonctions d’API ODBC. Par exemple, vous devez appeler directement les fonctions de catalogue ODBC (::SQLColumns, ::SQLProcedures, ::SQLTableset d’autres).

Remarque

Les sources de données ODBC sont accessibles via les classes ODBC MFC, comme décrit dans cette rubrique, ou via les classes DAO (Data Access Object) MFC.

Pour appeler directement une fonction API ODBC, vous devez effectuer les mêmes étapes que si vous effectuez les appels sans l’infrastructure. Ces étapes sont les suivantes :

  • Allouez le stockage pour tous les résultats retournés par l’appel.

  • Transmettez un odbc HDBC ou HSTMT un handle, en fonction de la signature de paramètre de la fonction. Utilisez la macro AFXGetHENV pour récupérer le handle ODBC.

    Les variables CDatabase::m_hdbc membres et CRecordset::m_hstmt sont disponibles afin que vous n’ayez pas besoin d’allouer et d’initialiser ces variables vous-même.

  • Appelez peut-être des fonctions ODBC supplémentaires pour préparer ou suivre l’appel principal.

  • Libérer le stockage lorsque vous avez terminé.

Pour plus d’informations sur ces étapes, consultez la référence du programmeur ODBC.

En plus de ces étapes, vous devez effectuer des étapes supplémentaires pour vérifier les valeurs de retour de fonction, vérifier que votre programme n’attend pas la fin d’un appel asynchrone, et ainsi de suite. Vous pouvez simplifier ces dernières étapes à l’aide des macros AFX_SQL_ASYNC et AFX_SQL_SYNC. Pour plus d’informations, consultez macros et globals MFC.

Voir aussi

Éléments fondamentaux relatifs à ODBC