VI:Accès à DB2/400 via l'ODBC : 6.1 Introduction La technologie ODBC permet d’établir un pont entre des applications et les bases de données les plus courantes . C’est ainsi que l’on pourra indifféremment utiliser une base de données ACCESS ou DB2 pour réaliser un mailing avec WORD . Cette technologie permet également de connecter des applications JAVA à une base de données sans se préoccuper de sa nature . On pourra même changer par la suite de base de données sans modifier l’application JAVA qui l’exploite . Toutefois , l’usage d’un élément intermédiaire entre l’application JAVA et la base de données ralentit les accès et peut même empêcher certaines opérations non reconnues par ODBC . Plate-forme Cliente Plate-forme Serveur Application JAVA Pont ODBC driver odbc jdbc Driver DB Application Bureautique Ou autre Base de données 6.2 Mise en place d’une connexion DB2/ODBC Pour que l’ODBC reconnaisse la base de données DB2/400 , il faut au préalable installer le produit CLIENT-ACCESS sur la plate-forme où est installé l’ODBC . L’ODBC est disponible à la fois dans les environnements MICROSOFT et LINUX . Création d’un lien entre ODBC et DB2/400 : Panneau de configuration Outils d’administration Sources de données(ODBC) Choisir l’onglet sources de données utilisateur ou l’onglet source de données système . AJOUTER choisir la ligne « CLIENT ACCESS » TERMINER Nom de la Source de données : donner un nom au hasard (par exemple BDTEST) , ce nom ne doit pas forcément correspondre au nom physique de la DB . SELECTIONNER AS400 SYSTEM : AS400E.LAN LIBRARY : BDTEST ou J… OK Création d’un lien entre ODBC et DB2 : Panneau de configuration Outils d’administration Sources de données(ODBC) Choisir l’onglet sources de données utilisateur ou l’onglet source de données système . AJOUTER choisir la ligne « IBM DB2 ODBC DRIVER » Nom de la Source de données : donner un nom au hasard (par exemple DB2_ETUDIANT) , ce nom ne doit pas forcément correspondre au nom physique de la DB . alias de la base de données : choisir dans la liste déroulante l’une des connexions établies par l’instruction CATALOG DATABASE . 6.3La classe de connexion ODBC Afin de faciliter les opérations de connexion à la DB et de les rendre réutilisables nous allons les inclure dans une classe spécifique . package myconnections; import java.sql.*; public class ODBCConnection { protected String serverName = "DB2_ETUDIANT"; protected String username; protected String password; public ODBCConnection() { FenetreConnexion fc = new FenetreConnexion(); while(!fc.logOK()) ; username=fc.getLogin(); password=fc.getPassword(); fc.dispose(); } public ODBCConnection(String username,String password){ this.username=username; this.password=password; } public ODBCConnection(String username,String password,String serverName) { this(username,password); this.serverName=serverName; } public Connection getConnection() { try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //chargement du driver JDBC-ODBC String url = "jdbc:odbc:"+serverName; return DriverManager.getConnection(url,username,password); } catch(Exception e) { System.out.println("erreur de connexion "+e); e.printStackTrace(); return null ; } } } 6.4 Exemple d’utilisation import import import import java.sql.*; java.io.*; clavier.*; myconnections.ODBCConnection; public class SQLODBC { public static void main(String[] args) { int n = 1; Connection dbConnect=null; ODBCConnection odbcc = new ODBCConnection(); dbConnect = odbcc.getConnection(); if(dbConnect == null) System.exit(0) ; System.out.println("connexion établie"); Etc … 6.5 Une petite application bureautique (Ou comment arranger un mariage entre IBM et MICROSOFT) a.Liaison d’une Table externe dans Microsoft-Access -créer une DBACCESS LOCALDB -FICHIER DONNEES EXTERNES LIER TABLES -Choisir comme type ODBCTABLES -Choisir l’onglet « Sources de données machine » -Choisir le pont ODBC correspondant à la base de données DB2 -Choisir les tables nécessaires à l’application bureautique (exemple CLIENTS) RQ : à partir de cet instant , les tables de DB2 sont accessibles via les outils d’ACCESS . (en mise à jour notamment) b.Création d’un document de publipostage avec WORD -INSERTION CHAMP PUBLIPOSTAGE -Choisir MERGEDFIELD et ajouter le nom d’une colonne de la table contenant les données . Ex : MERGEDFIELD NOM « NOM » apparaît dans le document WORD . -OUTILS PUBLIPOSTAGE -CRÉER LETTRE TYPE FENETRE ACTIVE -Obtenir les données Ouvrir la source de données -Choisir BDACCESS comme type et sélectionner la DB LOCALDB -Cliquer sur FUSIONNER