ALSI Architecture Client/Serveur STS2 Le middleware Le 16/04/17 page 1/4 1. COMPETENCES A ATTEINDRE A LA FIN DU TP Comprendre l’intérêt d’un middleware. Mettre en œuvre un C/S de données Mettre en œuvre un C/S de traitement 2. LE CONTEXTE On travaille sur la base de données FFMC : Fédération Française de Moto Cross qui contient 3 tables : ligue, club et licencié. Les IHM sont sous ACCESS , dans FFMC_IHM.MDB. Les données vont être implantées successivement sur les serveurs de BD MySQL puis ORACLE. On veut montrer la facilité de mise à jour des clients si on utilise un middleware : ODBC. 3. ETAPES DU TP Implanter la base de données FFMC sous MySQL Client ACCESS pour la BD MySQL Implanter la base de données FFMC sous ORACLE. Client ACCESS pour la BD ORACLE Créer une base de données sous MySQL Exécuter les scripts de création des tables Exécuter les scripts de création des données Paramètrer une DSN système pour MySQL Lier les tables dans ACCESS Créer une base de données sous MySQL Exécuter les scripts de création des tables Exécuter les scripts de création des données Installer la connexion Client Oracle/Serveur Oracle avec Oracle Net Paramètrer une DSN système pour Oracle Lier les tables dans ACCESS 4. IMPLANTER LA BASE DE DONNEES FFMC SOUS MYSQL On travaille à partir de l’interface texte de MySQL. Créer une base de données Exécuter le script de création des tables : Vérifier la création des tables Exécuter le script de création des données : Vérifier la création des lignes D:\769801336.doc CREATE DATABASE BDFFMC ; USE BDFFMC ; SOURCE Mysql\CreBdFfmc.sql ; SHOW TABLES ; SOURCE Mysql\InsertBDFFMC.sql ; SELECT * FROM LICENCIE ; ALSI Architecture Client/Serveur STS2 Le middleware 5. PARAMETRER UNE DSN SYSTEME POUR MYSQL D:\769801336.doc Le 16/04/17 page 2/4 ALSI Architecture Client/Serveur STS2 Le middleware Le 16/04/17 page 3/4 6. CLIENT ACCESS POUR LA BD MYSQL Ouvrir ffmc_ihm.mdb dans ACCESS Lier les tables : 1. Sur l’onglet tables, clic droit et choisir Lier les tables Ou à partir de menu fichier\Données externes\ Lier les tables 2. Dans la boite de dialogue Attacher : Choisir ODBC databases puis votre DSN : DsnBDFFMC. 3. L’IHM vous propose la liste des tables existantes dans la base. 4. Attacher toutes les tables Tester le formulaire et la mise à jour des données à partir du client à partir du serveur 7. IMPLANTER LA BASE DE DONNEES FFMC SOUS ORACLE On travaille à partir de SQLPlus. Créer un utilisateur Exécuter le script de création des tables : Vérifier la création des tables Exécuter le script de création des données : Vérifier la création des lignes CREATE USER AdminFFMC …; Connect AdminFFMC… START oracle\CreBdFfmc.sql ; SELECT TABLE_NAME FROM TABS ; START oracle\InsertBDFFMC.sql ; SELECT * FROM LICENCIE ; 8. ADMINISTRER LA BD SOUS ORACLE 8.1. Installer la connexion Client Oracle/Serveur Oracle avec Oracle Net Pour que le client puisse se connecter au Serveur Oracle, il faut paramétrer le middleware propriétaire d’Oracle : Oracle Net. Lancer l’interface graphique Assistant Configuration Oracle Net Saisir un nom de connexion (équivalent au DSN) et paramétrer la connexion : protocole de transport et serveur cible. (couches du modèle OSI voisines du middleware) Architecture à obtenir : SQLPLus SQLPlus Client CnxORACLE Middleware propriétaire Oracle Net 8.2. Tester la base directement avec le serveur Oracle A partir de SQLPLus, tester l’accès à la table LICENCIE par un SELECT * FROM licencie ;. D:\769801336.doc ORACLE Serveur SGBD ALSI Architecture Client/Serveur STS2 Le middleware Le 16/04/17 page 4/4 8.3. Reparamètrer la DSN ODBC pour Oracle au lieu de MySQL Architecture à obtenir : Access Client DsnBdFFMC Middleware ODBC CnxOracle Middleware Oracle Net ORACLE Serveur SGDB 8.4. Tester les IHM à partir du client FFMC_IHM.MDB Idem à MySQL 9. SE CONNECTER A UNE AUTRE BD ORACLE En principe, chaque BD ne dispose que des données de son club. Que faut-il faire pour se connecter aux données de la BD de votre voisin ? 10. EXECUTER UNE PROCEDURE A PARTIR DU CLIENT La BD Oracle dispose d’une procédure Stat qui copie dans une table les licenciés ayant eu au moins 1 victoire. Lancer cette procédure à partir de ACCESS. En l’intégrant dans une requête ACCESS : En l’intégrant dans le code VBA d’un formulaire : Dim MyDB As Database Dim MyQuery As QueryDef 'Initialisations Set MyDB = CurrentDb() Set MyQuery = MyDB.CreateQueryDef("NomRequete") MyQuery.Connect = "ODBC;DSN= ????;UID= ???;PWD=????; MyQuery.ReturnsRecords = False ' Lance la procédure stockées MyQuery.SQL = "BEGIN NomProcedure; END;" DoCmd.OpenQuery " NomRequete" D:\769801336.doc