Exporter (0) Imprimer
Développer tout

ODBC (Open Database Connectivity)

ODBC (Open Database Connectivity) offre une interface de programmation d'application (API) universelle pour la connectivité des bases de données qui permet d'accéder aux données d'une vaste gamme de bases de données prioritaires. Basé sur la spécification CLI (Call Level Interface) de X/Open SQL Access Group, ODBC est une méthode ouverte et indépendante du fournisseur pour accéder de façon uniformisée à des données stockées dans différents formats et différents moteurs de base de données.

ODBC est l'interface la plus utilisée pour les données relationnelles. Il s'avère également particulièrement rapide, mais cette vitesse d'accès se paie par la complexité du code d'application.

Les caractéristiques générales d'ODBC sont les suivantes:

  • performances très élevées;
  • codage difficile;
  • besoins en mémoire raisonnables;
  • compatibilité avec les technologies de base de données existantes;
  • portabilité sur de nombreuses plates-formes de système d'exploitation;
  • modèle de connection permettant différents réseaux, systèmes de sécurité et options de base de données.

En tant qu'interface standard avec les données relationnelles, ODBC permet à votre application d'accéder à de nombreuses données. Cependant, ODBC exige que vos données aient l'apparence d'une base de données relationnelle, c'est pourquoi ce n'est pas toujours la meilleure méthode pour exposer des données. Si vous ne possédez pas de base de données relationnelle, il peut s'avérer très difficile d'écrire un pilote ODBC pour exposer vos données, car vous devez en fait écrire un moteur relationnel par-dessus la structure de données existante.

Présentation de l'architecture ODBC

L'architecture ODBC est formée de quatre composants, décrits dans la liste ci-après.

  • Interface de programmation d'application (API) Appelle les fonctions ODBC pour effectuer une connection à une source de données, envoyer et recevoir des données, puis effectuer la déconnection.
  • Gestionnaire de pilotes Fournit des informations à une application (par exemple, une liste des sources de données disponibles), charge les pilotes dynamiquement en fonction des besoins et vérifie les arguments et la transition d'état.
  • Pilote Traite les appels de fonctions ODBC et gère tous les échanges entre une application et une base de données relationnelle spécifique. Si nécessaire, le pilote peut convertir la syntaxe SQL standard dans le langage SQL natif de la source de données de destination.
  • Source de données Comprend les données et le moteur de base de données associé.

Votre application utilise l'API ODBC pour se connecter à une source de données, soumettre des instructions SQL, extraire des données et se déconnecter. Un gestionnaire de pilotes, situé entre l'application et les pilotes ODBC, décide du pilote à charger et gère les communications lors des appels aux fonctions des pilotes. Enfin, les pilotes mettent en œuvre les fonctions de l'API ODBC pour la base de données concernée.

La figure suivante illustre l'interaction de ces fonctions.

Pour votre application, une architecture ODBC signifie que vous pouvez accéder à différentes sources de données ODBC, situées en différents emplacements, à l'aide des mêmes appels de fonctions disponibles dans l'API ODBC. Une fois que vous disposez du code fonctionnel permettant d'accéder à une source de données relationnelle, ce code peut être facilement étendu pour accéder à d'autres sources de données.

Accès aux données avec ODBC

ODBC offre une API uniformisée permettant d'accéder à toutes les sources de données relationnelles. ODBC, abondamment soutenu par les fournisseurs d'applications et de bases de données, rassemble en une même API toutes les fonctionnalités nécessaires aux développeurs d'applications. Cette architecture uniformisée d'accès aux données est une garantie d'interopérabilité et d'approche commune de l'accès aux données pour toutes les différentes sources de données relationnelles.

Pour accéder à une source de données à l'aide de l'API ODBC, une application utilise les appels de fonctions et les processus suivants.

  • Affectation du handle d'environnement Identifie l'emplacement en mémoire des données globales et des informations relatives à l'état pour les connections définies.
  • Affectation de la connection Identifie l'emplacement en mémoire des données relatives à une connection donnée.
  • connection Spécifie les informations d'autorisation de connection (telles que le nom de la source de données, l'identification de l'utilisateur et le mot de passe).
  • Affectation de l'instruction Associe une instruction SQL à une connection. Vous pouvez associer plusieurs instructions SQL différentes à une connection, mais à raison d'une à la fois.
  • Exécution de l'instruction SQL Traite l'instruction SQL à l'aide du moteur de base de données.
  • Extraction de l'ensemble de résultats Reçoit les résultats de l'instruction SQL (par exemple, toutes les lignes, ou uniquement la première ou la dernière, ou encore la suivante ou la précédente), ainsi que des informations relatives à ces résultats (par exemple, le nombre de lignes ou le nombre de colonnes).
  • Libération de l'instruction Sépare l'instruction de la connection. Vous pouvez désormais associer une autre instruction SQL à cette même connection.
  • Déconnection Supprime de la connection le nom de la source de données et les informations d'autorisation.
  • Libération de la connection Supprime la connection.
  • Libération du handle d'environnement Supprime les données globales et libère toute la mémoire associée.

Le codage en fonction de l'API ODBC vous permet de créer un code indépendant de la base de données qui s'adapte automatiquement à diverses bases de données. Cependant, un point important est à prendre en considération dans cette approche. Alors que tout pilote ODBC spécifique peut exploiter les fonctions propres à une source de données, ces mêmes fonctions risquent de ne pas être prises en charge par d'autres pilotes. Si votre application est conçue pour être utilisée sur différentes bases de données, ces fonctions étendues doivent être utilisées avec précaution ou ne pas être utilisées du tout.

Quand utiliser ODBC

Un certain nombre de facteurs influencent le choix de l'approche ODBC, parmi lesquels un besoin de performances élevées, un contrôle plus précis sur l'interface et un faible encombrement.

L'API ODBC est considérablement plus difficile à coder que les interfaces à objets, mais elle offre un contrôle plus fin de la source de données. Contrairement à d'autres technologies d'accès aux données (comme par exemple ADO, RDO ou ODBCDirect), l'API ODBC n'est pas conçue pour être "à toute épreuve". Bien qu'il soit relativement facile de créer des erreurs ODBC lors du développement, l'API ODBC offre un excellent traitement des erreurs, avec des messages d'erreur détaillés. En général, le développement, le débogage et la prise en charge d'une application d'API ODBC requiert beaucoup de connaissances, d'expérience et de lignes de code. Le plus souvent, les développeurs préfèrent accéder aux données à l'aide d'une interface à objets plus simple et de plus évoluée telle qu'ADO.

ODBC ne convient pas aux données non relationnelles telles que les données ISAM (Indexed Sequential Access Method), car il ne possède pas d'interface permettant la recherche d'enregistrements, la définition de plages ou la consultation d'index. ODBC n'a tout simplement pas été conçu pour accéder à des données ISAM. Même si vous pouvez utiliser le pilote ODBC de Microsoft Jet pour traiter les données ISAM et les données natives du moteur Microsoft Jet, ce qui se produit en fait est que le moteur de base de données Microsoft Jet convertit les données ISAM en données relationnelles, puis offre des fonctionnalités ISAM limitées. Dans ce cas, les performances sont ralenties du fait de la couche supplémentaire imposée par le moteur Microsoft Jet.

Si votre application nécessite un accès très rapide aux données ODBC existantes et que vous êtes prêt à écrire de nombreuses lignes de code complexe (ou que vous disposez déjà de beaucoup de code ODBC à réutiliser), ODBC est un bon choix.

Dernière mise à jour le mardi 30 novembre 1999



Afficher:
© 2014 Microsoft