Vous êtes sur la page 1sur 13

ENSG/ Cersig IGN- ENSG-CERSIG Cours Map Info V7.0 livret 3 Version du Cours V1.

0 Auteur Pascal Barbier - Pascal .Barbier@ensg.ign.fr Date 24 octobre 2003 INDEX

XVII - Accs des tables distantes (DBMS) ..............................................................................50


XVII-1 Gnralit sur ODBC ........................................................................................................................50 XVII-2 Cration dun DSN avec ODBC ........................................................................................................50

XVIII Liaison entre Map Info 7.0 et ACCESS 2000 .........................................................................51


XVIII-1 Chargement du gestionnaire RDBMS dans Map Info...................................................................51 XVIII-2 Chargement dune table Map Info existante dans Access.............................................................52
XVIII-2.1 Prparation du DSN....................................................................................................................................................................................52 XVIII-2.2 Cration de la base Access..........................................................................................................................................................................53

XVIII-3 Ouverture dune table DBMS lie ( tlcharge) ...........................................................................55


XVIII-3.1 Etablir une connexion DBMS via un DSN..................................................................................................................................................55 XVIII-3.2 La structure de table ainsi organise ...........................................................................................................................................................56

XVIII-4 Liens dynamiques entre MapInfo et ACCESS ...............................................................................56


XVIII-4.1 Modification des donnes attributaires depuis Access .................................................................................................................................57 XVIII-4.2 Modification des donnes attributaires depuis Map Info..............................................................................................................................57 XVIII-4.3 Modification de la gomtrie depuis Map Info ...........................................................................................................................................57

XVIII-5 Modification de la smiologie dune table DBMS ..........................................................................58 XVIII-6 Requtes SQL sur tables distantes...................................................................................................58 XVIII-7 Cartographier une table sans gomtrie .........................................................................................59
XVIII-7.1 Prparation sous Access:.............................................................................................................................................................................59 XVIII-7.2 Cration dune table MapInfo sans gomtrie mais avec attributs X et Y:..................................................................................................59 XVIII-7.3 Tlchargement de la table Map Info dans Access avec EasyLoader.mbx:.................................................................................................60 XVIII-7.4 Cartographier la table distante ....................................................................................................................................................................60

XVIII-8 Comparaison tables lies ou cache .......................................................................................60


XVIII-8.1 Analyse thmatique avec jointure : comparaison table lie- table cache :...................................................................................................61 XVIII-8.2 Gocodage avec jointure : comparaison table lie- table cache :.................................................................................................................61 XVIII-8.3 Cartographie de table DBMS : comparaison table lie- table cache :..........................................................................................................61 XVIII-8.4 Conclusions ................................................................................................................................................................................................61

Les noms de produits et de socits apparaissant dans ce document sont des marques dposes de leurs propritaires respectifs.

P.Barbier

49

ENSG/ Cersig

XVII -

Accs des tables distantes (DBMS)

MapInfo autorise et facilite laccs et la manipulation de donnes situes dans des bases distantes grce ses supports de connections ODBC et Oracle Spatial Object. Map Info supporte Oracle Spatial qui permet de stocker la fois des objets spatiaux et des informations attributaires dans la mme base. Accder des bases distantes impliques quelques conditions pralables, car MI ninstalle pas le systme SGBD choisi ( Oracle, Access..) ni son gestionnaire de rseau. En revanche Map Info installe le gestionnaire OBDC de Microsoft et le support OBBC MapInfo Professional. Une fois linstallation de Map Info complte par ces lments il est possible de personnaliser ses sources de donnes dans ladministrateur DBMS sans avoir retourner dans le support dinstallation de MI

XVII-1 Gnralit sur ODBC


ODBC signifie Open Database Connectivity. Il s'agit d'un format dinterface propritaire dfini par Microsoft permettant la communication entre des clients bases de donnes fonctionnant sous Windows et les diffrents SGBD du march qui utilisent SQL comme standard daccs aux donnes. Le gestionnaire ODBC est prsent sur les systmes Microsoft Windows. La technologie ODBC permet d'interfacer de faon standard une application n'importe quel serveur de bases de donnes, pour peu que celui-ci possde un driver ODBC (la quasi-totalit des SGBD possdent un tel pilote, dont tous les principaux SGBD du march). La technologie ODBC prsente quelques inconvnients Bien que ODBC permette un interfaage avec des bases de donnes indpendamment du SGBD, cette technologie reste une solution propritaire de Microsoft. Cela se traduit par une dpendance de la plate-forme (ODBC ne fonctionne que sur les plate formes Microsoft Windows). D'autre part, ODBC est fortement li au langage C (utilisation de pointeurs), et ODBC utilise des paramtres nonstandards, ce qui le rend difficile mettre en uvre directement dans les programmes.

XVII-2 Cration dun DSN avec ODBC


ODBC permet de relier un client une base de donnes en dclarant une source de donnes (correspondant gnralement une base de donnes) dans le gestionnaire ODBC (communment appel administrateur de source de donnes ODBC). La source de donnes peut tre aussi bien une base de donnes qu'un fichier Access, Excel ou bien mme un fichier. On appelle donc DSN (Data Source Name) la dclaration de la source de donnes qui sera accessible par l'intermdiaire de ODBC. Si le driver ODBC pour la base de donnes n'est pas installe par dfaut sous l'administrateur de source de donnes, il faut linstaller. Cette opration peut se raliser partir du panneau de configuration par l'administrateur de source de donnes ODBC, par exemple sous certains systmes Windows, o, directement partir de MapInfo (EasyLoader). Pour dclarer une source de donnes il faut crer les donnes (crer une ou plusieurs tables dans une base de donnes ou bien crer un fichier Excel ou Access). Exemple de fichier DSN

P.Barbier

50

ENSG/ Cersig

XVIII Liaison entre Map Info 7.0 et ACCESS 2000

XVIII-1 Chargement du gestionnaire RDBMS dans Map Info


Map Info offre la possibilit daccder des donnes externes, soit par des ouvertures directes ( Ouvrir Table ) soit par des ouvertures DBMS ( ODBC). Pour cela le gestionnaire RDBMS doit tre charg partir du cdrom dinstallation. Procder de la manire suivante partir du disque dinstallation de MapInfo : Vous installer le support DBMS 32 bits avec lInstallShield Wizard en slectionnant les composants comme ci dessous :

Le support DBMS copie les pilotes sur le disque. Ceux ci peuvent tre installs, soit la suite, soit au cas par cas.

Il faut choisir les pilotes utiliser avec MapInfo en les cochant. Ds lors, il sera possible de crer des sources de donnes

Linstallation du support DBMS provoque laffichage dun menu flottant supplmentaire louverture de Map Info. Ce menu vous permettra de travailler avec des tables distantes.

P.Barbier

51

ENSG/ Cersig

XVIII-2 Chargement dune table Map Info existante dans Access


XVIII-2.1 Prparation du DSN
On peut ventuellement y accder depuis le systme dexploitation Windows par le chemin : Dmarrer>> Panneau de config>>outils d'administration . Et l on trouve loutil " source de donnes ODBC.. Mais Map Info fournit un outil; EasyLoader.mbx dans le rpertoire Tools qui permet de charger une table Map Info dans Access. Cet outil a bnfici dune refonte dans la version 7.0avec 2 botes de dialogue. Lexemple concret trait ci dessous part dune table MapInfo ordinaire . Cette table ne possde ni DSN ni base Access associ. Au chargement EasyLoader se prsente comme ci contre:

Comme nous ne sommes actuellement connects aucun serveur de donnes le bouton Choix des Tables est inactif.

Le choix de connexion OBDC ouvre la fentre de slection de la source de donnes. Mais celle ci nexiste pas encore ! Il faut donc choisir le bouton Nouveau !

A partir de l il faut choisir le pilote ncessaire Microsoft Access dans notre cas.

On va alors choisir le niveau de rpertoire et le nom de la source de donnes crer dans la fentre Crer une nouvelle source de donnes . On choisit le rpertoire cible de la cration par le bouton Parcourir On saisit lors le nom du fichier Source de Donnes (.dsn) dans la fentre Enregistrer sous Lexprience montre que Map Info prouve plus de difficults se connecter sur des tables situes dans des rpertoires dots de noms complets possdant des espaces, des points et des lettres accentues. Le bouton Enregistrer permet de fermer la fentre et fait remonter le choix du rpertoire et du nom de fichier dsn dans la fentre Crer une nouvelle source de donnes . En cliquant sur Terminer on achve cette tape.

P.Barbier

52

ENSG/ Cersig

XVIII-2.2 Cration de la base Access

Aucune base Access ntant cre on ne peut pas encore utiliser le bouton Slectionner.. . Si on choisit cette option on saperoit quune base Access nexiste dans le rpertoire spcifi ! Il faut donc la crer.. par le bouton Crer. Nota : Une base de donnes cre de cette faon ne fonctionnera qu'avec Microsoft Access 7.0 et ultrieur.

On va maintenant crer la structure mdb partir de la table Map Info originale

A cette tape, il faut choisir le rpertoire et le nom de la base Access[qui peut tre diffrent du nom de la table Map Info] Cliquer sur le bouton Ok cre la base de donnes Access, dans le rpertoire spcifi.

Ltape suivante qui va consister lier la base Access au Data Source Name.

On a maintenant une base Access nomme EcolesSaintMaur.mdb qui est lie Map Info via le DSN [Data Source Name] SourceDonnesEcoleSM.dsn. Pour information le contenu de SourceDonnesEcoleSM.dsn est le suivant :
[ODBC] DRIVER=Microsoft Access Driver (*.mdb) UID=admin UserCommitSync=Yes Threads=3 SafeTransactions=0 PageTimeout=5 MaxScanRows=8 MaxBufferSize=2048 FIL=MS Access

P.Barbier

53

ENSG/ Cersig
DriverId=25 DefaultDir=D:\MIACCESSCONNECT DBQ=D:\MIACCESSCONNECT\EcolesSaintMaur.mdb

Le contenu affich du menu principal dEasy Loader change alors comme indiqu ci dessous. Il est possible de choisir la table Map Info associe la source de donnes, par le bouton Choix des Tables . On peut alors lancer lopration dUpload.. cest dire de chargement de la base Access avec les attributs de la table Map Info ainsi que la remonte des coordonnes des points. On rappelle quune table Access ne peut piloter que des objets ponctuels ! Si la table exporte nest pas une table de point ce sont les coordonnes des centrodes qui sont exportes et ensuite cartographies Si tout se passe bien on obtient ce message :

nous avons maintenant 3 fichiers crs dans notre rpertoire destination :

Si on ouvre la base Access on obtient le rsultat suivant : Nous constatons que notre base est constitue de 2 tables. Une table gnrique : MAPINFO_MAPCATALOG Une table Map Info Source : SAINTMAURECOLESPOINT

MAPINFO_MAPCATALOG contient les mta donnes pour assurer la relation entre Map Info et Access. Cette table est aussi appele catalogue de carte elle aura autant de ligne que de tables seront cartographies dans la base Access.

SAINTMAURECOLESPOINT contient les informations attributaires de la table Map Info source plus des informations spcifiques comme les coordonnes X et Y

A Faire !
-Chargez la table SaintMaurEcolesPoint.TAB ( ou nimporte quelle table Map Info de donnes gomtriques ponctuelles) via EasyLoader dans Access.

P.Barbier

54

ENSG/ Cersig Nous nous apercevons que notre table comporte 21 enregistrements.

XVIII-3 Ouverture dune table DBMS lie ( tlcharge)


Avec Map Info et Access, en dehors de louverture directe, louverture par accs DBMS peut se raliser soit avec un cache qui est un cache mmoire, soit avec une table lie . Laccs lui-mme peut se faire soit en slectionnant un DSN ( source de donnes fichier) ou en slectionnant directement une base et un driver DBMS ( Source de donnes machine). Une table lie est un type spcial de table Map Info qui est tlcharge partir dune base de donne distante et qui conserve des liens avec elle. La table de donnes distante est appele table DBMS. La plupart des oprations ralisable sous Map Info sont ralisables sur une table DBMS. Toutefois on ne peut ni la compacter ni modifier sa structure. A priori une table peut tre tlcharge partir un SGBD tel Oracle, Sybase ou Access.

XVIII-3.1 Etablir une connexion DBMS via un DSN


Pour ouvrir une table DBMS il faut cliquer sur le bouton suivant du menu flottant DBMS. Mais avant daccder lassistant Ouvrir Table DBMS , lutilisateur doit se connecter la source de donnes o sont situes les donnes tlcharger. Si dans une session MapInfo, on ne sest pas encore connect une source de donnes, alors la premire slection du bouton Ouvrir Table DBMS ouvre la boite de dialogue Slectionner la source des donnes

Slectionner ensuite le DSN cr pralablement pour accder directement la source de donnes associe, via longlet Source de donnes de fichier.

Louverture de la table possible en plusieurs tapes : 1)Choix de la table

est

maintenant

2) Slection ventuelle des colonnes extraire et slection ventuelle des enregistrements par requte SQL 3)Choix de lendroit o le fichier .tab spcifique va tre cr. Par dfaut le .TAB sera cr dans lemplacement spcifi dans le menu Affichage> Prfrences> Rpertoires > (rubrique Tables Distantes) 4)Choisir entre table lie et accs direct aux donnes travers un cache. Dans le choix table lie ; la table est duplique sur le poste client et reste exploitable avec un poste dconnect du rseau. Dans le cas Accs direct, un fichier .TAB cach aux utilisateurs est cr, et les donnes stockes dans un bloc MetaData ( voir VII .3.2) Une fois valide par le bouton Ok cette configuration permet au menu DBMS flottant devient entirement actif.

P.Barbier

55

ENSG/ Cersig

A Faire !
-Crez un DSN pour la table prcdemment cre sous Access. Noubliez pas de prciser lemplacement du . TAB crer

XVIII-3.2 La structure de table ainsi organise


Si la table est pralablement dfinie comme une table cartographiable, alors elle saffiche dans la fentre carte de MapInfo. [ droite]

Sinon ce sont seulement les donnes attributaires qui saffichent. Le nouveau fichier . TAB inclut un bloc metadata qui garde trace des relations de construction de la table (nom et emplacement du DSN ainsi que de la base Access): Il est noter que le fichier . Tab origine nest pas modifi.
!table !version 400 !charset WindowsLatin1 Definition Table Type LINKED Charset "WindowsLatin1" Fields 4 Type Char (12) ; Nature Char (28) ; Toponyme Char (70) ; MI_SQL_REC_NUM Integer ; begin_metadata "\DATALINK" = "" "\DATALINK\ConnectionString" = "DBQ=D:\MiAccessConnect\EcolesSaintMaur.mdb;DefaultDir=D:\MiAccessConnect;Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;FILEDSN=D:\MiAccessConnect\SourceDonneesEcolesSM.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeou t" "\DATALINK\ConnectionString\+1" = "=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes" "\DATALINK\Query" = "select `Type`, `Nature`, `Toponyme`, `MI_SYMBOLOGY`, `MI_SQL_REC_NUM`, `OBJECT` from `D:\MiAccessConnect\EcolesSaintMaur`.`SAINTMAURECOLESPOINT`" "\IsReadOnly" = "FALSE" end_metadata

XVIII-4 Liens dynamiques entre MapInfo et ACCESS


MapInfo ayant la capacit douvrir une table Access par un lien ODBC, il est possible de modifier les informations soit par Map Info soit par Access. Soit une

configuration de base ci contre :

P.Barbier

56

ENSG/ Cersig

XVIII-4.1 Modification des donnes attributaires depuis Access


Lorsquune modification dun niveau attributaire intervient dans Access comme dans lexemple ci dessous ou le champ Toponyme de lcole portant lidentifiant N3 est modifi avec le nom Michelet

Lenregistrement de cette modification dans la table Access ne suffit pas faire remonter la modification dans Map Info. Il faut refermer la table. Une modification dune table Access ouverte dans Map Info ne produit pas deffet immdiat, mais, aprs enregistrement et fermeture de la table Access si le bouton Rafrachir Table DBMS du menu flottant DBMS est utilis alors la modification est visible.

XVIII-4.2 Modification des donnes attributaires depuis Map Info


Si une donne attributaire est modifie depuis Map Info ainsi que lexemple suivant dans une table lie, toute tentative de fermeture de la table sera associe lalerte suivante :

En revanche si on souhaite enregistrer la table dans MapInfo, le logiciel demandera si lon souhaite mettre jour la table lie distante par le menu suivant : Dans laffirmative la modification remonte la table Access lie :

XVIII-4.3 Modification de la gomtrie depuis Map Info


Nous allons voir comment une modification gomtrique ralise dans la fentre Carte de Map Info a une incidence sur la table lie sous Access. Voici notre table de dpart notez les coordonnes X et Y de lcole Diderot La table est ouverte sous Map Info, rendue modifiable et le point correspondant lcole Diderot est dplac vers lEst dune valeur alatoire. La table est alors sauvegarde. La question suivante est pose : Si la rponse est affirmative alors on obtient sous Access le rsultat suivant : On note que les coordonnes X et Y ont chang.

P.Barbier

57

ENSG/ Cersig En rsum si une modification dune table lie est effectue sous Access, la prise en compte dans Map Info se fait par Rafrachir . Si la modification est faite sous MapInfo, il y a dtection du conflit et le choix de mise jour est fait la fermeture.

A Faire !
-Ralisez quelques modifications attributaires et gomtriques sur vos tables.

XVIII-5 Modification de la smiologie dune table DBMS


MapInfo permet de modifier la smiologie dune Table DBMS par le bouton suivant : La modification se ralise par lintermdiaire des boutons classiques mais la prise en compte de cette modification nest effective quaprs avoir cliqu sur Rafrachir table DBMS.

A Faire !
-Modifiez la smiologie de la table SaintMaurEcolesPoint.TAB .

XVIII-6 Requtes SQL sur tables distantes


On ne peut pas faire de requtes sur une table distante avec le requteur classique de Map Info. Il faut passer par le programme BUILDSQL.mbx, qui se trouve dans le rpertoire MapInfo/Tools. La table sur laquelle faire des requtes tant ouverte en mode Table Lie . Lexcution de buildsql provoque laffichage de la fentre suivante, qui permet de slection la connexion utiliser pour la requte. Aprs cette tape, la fentre MapInfo DBMS SQL Runner apparat.

Pour construire une requte SQL avec cette interface il faut cliquer sur Slection SQL qui fait apparatre la fentre de saisie de la requte nomme Slection SQL DataLink .( voir ci dessous :)

Lutilisation de la fentre Slection SQL DataLink ressemble au requteur standard Map Info mais procde dune ergonomie diffrente. On remarquera que les zones de saisie des rubriques Colonnes, Tables Critres etc.. sont prcdes dune case cocher. Toute saisie se fera sous la rubrique qui a la case cocher coche. Certaines erreurs de manipulations interviennent ce niveau. Pour choisir la table de slection on clique sur le bouton Tables qui ouvre le menu de gauche, permettant de choisir la table requter ainsi que davoir comme montr dans lcran de droite ci dessus, une description du modle de la table.

P.Barbier

58

ENSG/ Cersig Aprs avoir choisi la table, les colonnes extraire et le critre de slection comme ci dessous on lance la requte par Ok . Loption daccs permet de Charger le rsultat. Si la requte est rutiliser on peut lenregistrer avec le bouton Chargement dans un fichier xxxx.sql

A Faire !
-Trouvez les toponymes de la table SaintMaurEcolesPoint.TAB dont le nom commence, par exemple, par la lettre H .

XVIII-7 Cartographier une table sans gomtrie


XVIII-7.1 Prparation sous Access:
Dans cette tape nous allons constater quune simple table Access peut tre vue depuis MapInfo.

A Faire !
-Crez sous Access une table Maternelle comportant une demi-douzaine denregistrements et portant deux informations. Identifiant dcole Nombre denfants Fermez toutes vos connexions DBMS.. et r-ouvrez la table SaintMaurEcolesPoint.TAB Vous obtenez sous Map Info une table sans gomtrie comme illustr droite, car la table Access Maternelle nest pas cartographique :

XVIII-7.2 Cration dune table MapInfo sans gomtrie mais avec attributs X et Y:

A Faire !
-Enregistrez la table Maternelle sous MapInfo en MaternelleXY comportant deux informations supplmentaires les champs X et Y des coordonnes des coles. Pour raliser cette opration, sous MapInfo vous vous aidez de le table SaintMaurEcolesPoint, et vous procdez par la fonction Mise jour de colonnes Nota : Pensez taper linstruction suivante : set coordsys table Saintmaurecolespoint dans la fentre MapBasic si vous voulez faire remonter des coordonnes dans le systme cartographique de SaintMaurEcolesPoint.tab

P.Barbier

59

ENSG/ Cersig La mise jour de colonne se fait comme indiqu dans la capture dcran :

A cet instant nous disposons sous Access dune table dcoles maternelles sans gomtrie et sans attributs X et Y et dans Map Info une table Maternelle nomme MaternelleXY sans gomtrie mais avec attributs X et Y

XVIII-7.3 Tlchargement de la table Map Info dans Access avec EasyLoader.mbx:


Avec Easyloader nous allons charger MaternelleXY depuis MapInfo Vers Access en utilisant notre DSN via le bouton ODBC . Ensuite nous pouvons choisir la table uploader ainsi que la mthode de remonte vers Access ( cration, remplacement, ajout)

Quand tout est paramtr le bouton Uploader permet de raliser laction. Nous avons maintenant sous Access une table nomme MaternelleXY qui porte des attributs X et Y mais qui nest pas cartographie ; Pour preuve.. la table MAPINFO_MAPCATALOG ne comporte toujours quune seule ligne.

XVIII-7.4 Cartographier la table distante


La table tant cre sous Access on peut la cartographier avec le bouton cartographier table DBMS du menu flottant DBMS .

Les choix illustrs ci contre sont proposs : Chois des champs portant les valeurs X et Y Projection dans laquelle sont exprimes ces valeurs Symbolisation associer la gomtrie. La table MAPINFO_MAPCATALOG saugmente dune nouvelle ligne pour porter les informations de cette table.

On obtient ensuite louverture de la table le rsultat graphique de la table MaternelleXY avec les symboles choisis ltape prcdente ( agrments ici en tiquette du nombre denfants de chaque cole.)

XVIII-8 Comparaison tables lies ou cache


Dans le cas dune table lie la table est copie et ventuellement filtre via ODBC. Les .tab , .dat sont cres. Le .tab contient la fois la dfinition des champs et le lien vers la base Access lie par un bloc metadata, comme nous lavons vu prcdemment.

P.Barbier

60

ENSG/ Cersig Dans le cas dune table cache, il y a cration dun .tab mais celui ci ne comporte que la rfrence la base Access associe. Les tableaux suivants font ressortir les diffrences entre les 2 solutions :

XVIII-8.1 Analyse thmatique avec jointure : comparaison table lie- table cache :
Table cache + pas de duplication de .DAT - index numrique ncessaire - pas de rafrachissement Table lie - cration dun .DAT + index pas ncessaire + rafrachissement possible

XVIII-8.2 Gocodage avec jointure : comparaison table lie- table cache :


Table cache + pas de duplication de .DAT + gocodage possible - pas de rafrachissement : refaire gocoder - gocodage non permanent Table lie - impossible

XVIII-8.3 Cartographie de table DBMS : comparaison table lie- table cache :


Table cache + usage de .wor possible + pas de duplication de .DAT - pas de rafrachissement : fermer/ouvrir .wor - anomalie de superposition des points Table lie + rafrachissement possible + usage de .wor possible - cration dun .DAT

XVIII-8.4 Conclusions

Fonctions Analyse thmatique Gocodage Cartographie Mise jour Partage Slection sous-ensemble louverture Requtes SQL (MI) Requtes SQL (Access) Duplication . dat

Accs DBMS cache + + + + +++ ++ ++ ++

Accs DBMS table lie ++ ++ ++ ++ ++ ++ ++ -

Accs ouverture directe ++ ++ ++ + ++ ++

Compte tenu des risques encourus, il vaut mieux (sauf exceptions ) viter les mises jours de bases de donnes externes depuis Map Info.

P.Barbier

61