SIG 11 ARTICLES DOCUMENTS MEMBRES LIENS

ODBC sous Unix

Microsoft d'origine, ODBC est une interface de programmation qui permet, en rajoutant une couche, de pallier à l'absence de liaison directe entre une application et un serveur de bases de données ; on peut voir ODBC comme un service de traduction grâce auquel la requête d'une application quelconque sera comprise par un SGDBR quelconque, et apportera un peu de rigueur dans la tour de Babel des implémentations du langage SQL. Naturellement, cette traduction passera par un lexique propre à chaque serveur de bases de données : le pilote ODBC, qui devra être installé et paramétré au moyen d'une interface graphique, ou en éditant deux fichiers de configuration pour les puristes, par l'administrateur système.
Pour Linux, deux interfaces graphiques coexistent : unixODBC, livrée avec les principales distributions, richement documentée, disponible pour Qt comme pour GTK+, et iODBC, seulement GTK et beaucoup plus frustre, puisqu'elle ne sert guère qu'à saisir des paires attribut/valeur. Le choix est vite fait.
Le travail d'unixODBC se déroulera en deux étapes :
  1. Il faudra lui indiquer où trouver les bibliothèques nécessaires pour accèder à notre serveur MySQL. Il en fournit une, la bibliothèque d'installation, il faudra aller chercher l'autre, le pilote MyODBC, sur le site de MySQL.
  2. Il appartiendra ensuite à l'administrateur système de configurer les sources de données, alias Data Source Name, qui permettront la connexion avec une base de données spécifique. Il en existe principalement deux sortes : les DSN système, configurées par l'administrateur pour tous les utilisateurs, et les DSN utilisateur, configurées par un utilisateur pour son usage exclusif.
Commençons-donc par télécharger et installer le pilote MyODBC ; il n'y a aucune raison de ne pas utiliser la dernière version, 3.51. L'archive rpm installera le pilote libmyodbc3-3.51 dans le répertoire /usr/local/lib. Peu importe : pour simplifier, on va créer un lien symbolique à partir de /usr/lib :
 
ln -s /usr/local/lib/libmyodbc3-3.51.04.so libmyodbc.so 
 
et c'est tout. Il ne reste qu'à installer l'interface graphique, et à configurer ODBC.

Configurer la liaison ODBC

Pour la Mandrake 9.0, unixODBC va se trouver réparti entre un certain nombre de paquets :
  • unixODBC qui contient les applications en ligne de commande et les fichiers de configuration
  • unixODBC-gui-gtk et unixODBC-gui-qt, les interfaces graphiques
  • libunixODBC2 et libunixODBC2-qt, les indispensables bibliothèques
  • Et enfin libunixODBC2-devel, même si l'on n'a rien a compiler, car c'est là que se trouve toute la documentation
Tout est en place, ne reste plus qu'à se connecter en utilisateur root et à lancer l'application ODBCConfig. Indéniablement, elle nous rappelle quelque chose.
Il nous faut d'abord cliquer sur l'onglet Drivers. Le pilote pour PostgreSQL étant le seul fourni avec unixODBC, il apparaît seul dans la fenêtre. On se doute qu'il nous suffit pour ajouter le pilote MySQL de cliquer sur Add...
... et de remplir les quelques champs qui nous sont proposés : donner un nom au pilote, indiquer l'emplacement de libmyodbc.so, le pilote MySQL, et de libodbcmyS.so, la bibliothèque de configuration provenant d'unixODBC. Les versions sont différentes, la cohabitation se passe à priori sans souci.
Rendez-vous ensuite sur l'onglet System DSN, où il suffira là encore d'indiquer l'adresse du serveur, le nom de la base de données, et prendre la précaution de donner à la source de données le nom de la base. Ce nom étant en effet fourni à MySQL lors de la connexion, le serveur refusera, si l'on en choisit un autre, l'accès à une base de données qui lui est inconnue.
Notons que, en posant le curseur sur l'une des zones de saisie, une aide substantielle sous forme d'info-bulle apparaît. Celle qui concerne les options vaut le détour.
Terminé pour root. En utilisateur ordinaire, il nous reste à aborder la dernière étape : configurer l'application qui utilisera ODBC, c'est à dire OpenOffice.org.

La source de données dans OpenOffice.org

Pour cela, il nous faut lancer l'application, avec par exemple son traitement de textes, aller dans le menu Outils/Sources de données..., cliquer sur le bouton Nouvelle source de données et remplir les champs appropriés de l'onglet Général : lui donner un nom, choisir ODBC comme type de base de données, puis cliquer sur le petit bouton à côté de URL de la source de données.
On retrouve alors la source de données configurée grâce à unixODBC. Choisissons-donc publipostage, et cliquons sur OK.
Il est temps d'essayer : passons à l'onglet ODBC et fournissons les informations d'identification, sans qu'il soit besoin d'en faire plus.
Cliquons maintenant sur l'onglet Tables. Ce faisant, on va accèder à la base MySQL, laquelle nous demande bien sûr notre mot de passe.
Et ça marche. En théorie, les trois boutons présents, qui seront actifs si l'on sélectionne la table, nous permettront de créer une nouvelle table, de modifier la table sélectionnée, ou de la supprimer. En fait, on s'apercevra vite que notre accès est en lecture seule. Cela suffit à nos besoins, et l'on a a vu que l'on disposait d'autre moyens graphiques pour administrer la base.
En cliquant à droite et à gauche, on retrouvera une interface d'administration de bases de données proche de celle de Star Office 5.2. On trouvera à cette adresse un document au format pdf détaillant son utilisation. Une traduction en Français de ce texte, avec des captures d'écran de bien meilleure qualité, figure dans la documentation du site français d'OpenOffice.org.
SIG 11 DOCUMENTS LA SOURCE DE DONNÉES LA CONNEXION ODBC LE PUBLIPOSTAGE

info@sig-11.org