Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Fri 07 October 2011 22:29

Alex Rabat
Participant occasionnel
Date d'inscription: 21 Sep 2011
Messages: 13

Anomalies Base de donnée Microstation/Oracle-Access

Bonjour,

Je travaille sur une plate-forme assez ancienne Microstation pour gérer des objets graphiques de type réseau (eau, ass, élec) avec un lien vers une base de données Oracle pour les données alphanumérique. Les données sont saisies et consultées via une interface Access.

Deux questions :
-    Est-il possible de visualiser les tables d'objets graphiques contenant théoriquement un Mslink et un entity_num  dans Microstation ?
-    En réalisant un export de ma base de données sous FME, j'ai constaté avec surprise que la structure de ma base de données graphique contenait plusieurs Mslink d'une part : Mslink_0; Mslink1; Mslink_2. Avec plusieurs entity_num correspondants : entity_num_0; entity_num_1; entity_num_2.

Quelqu'un a-t-il eu ce cas / un début d'explication ?

Merci

Alex

Hors ligne

 

#2 Fri 07 October 2011 23:40

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 567
Site web

Re: Anomalies Base de donnée Microstation/Oracle-Access

Bonsoir,

Une fois MicroStation connecté à Oracle il est possible de saisir n'importe quelle requête SQL en la tapant dans la zone d'entrée au clavier précédée d'un pipe ("|").

Pour les mslinks multiples , je ne vois pas, il doit falloir regarder du côté du paramétrage FME.


Jean-Marie
Azimut

Hors ligne

 

#3 Mon 10 October 2011 09:20

j.rolland
Participant occasionnel
Lieu: MONTPELLIER
Date d'inscription: 12 Sep 2005
Messages: 40

Re: Anomalies Base de donnée Microstation/Oracle-Access

Bonjour,

Sur quelle version de Microstion travaillez-vous ?

Jérôme


Jérôme ROLLAND

FIT-ESIC

Hors ligne

 

#4 Mon 10 October 2011 09:43

Jean-Michel
Membre
Lieu: An Oriant /Lorient
Date d'inscription: 3 Oct 2005
Messages: 3909

Re: Anomalies Base de donnée Microstation/Oracle-Access

Bonjour,
J'ai travaillé avec ce type d'outils il y a quelques années... (Giris je pense)
Cette gestion de plusieurs MSlink est liée intrinsèquement au format des fichiers DGN (comme le DWG ou DXF d'ailleurs) : Comme on peut avoir X couches (levels) dans un fichier Microstation (65 puis infini depuis quelques années....), l'ensemble des couches étaient gérées dans un seul fichier DGN, et pointait vers la base Oracle.
Il fallait dont indiquer à Oracle sur quelle couche du fichier DGN se trouvent les objets de la couche 1 (entity_num1=21 pour niveau 21 par ex) et du coup différencier les MSLink, pour établir les liens DGN/Oracle correctement.
idem pour les autres couches et objets...

(bon je ne suis peut-être pas très clair...)


Jean-Michel
GeoRezo, c'est des blogs, un wiki, un Netvibes ...
GeoRezo vous aide ==> Aidez GeoRezo !

Hors ligne

 

#5 Mon 10 October 2011 12:31

Alex Rabat
Participant occasionnel
Date d'inscription: 21 Sep 2011
Messages: 13

Re: Anomalies Base de donnée Microstation/Oracle-Access

Bonjour,

Merci pour vos nombreuses réponses.

Je travaille sur la version V8 2004 Edition ou 08.05.02.35 Windows x86 pour être exact.

Cet outil et ces données étaient sensés évoluer vers Giris. Finalement ça ne s'est pas fait.

En effet Jean-Michel, Chaque objet graphique est décrit par un Mslink et un entity_num qui permet à Oracle, via une table MS_CATALOG, de savoir dans quelle couche se trouve l'objet et donc dans quelle table il doit écrire ses informations attributaires (21 pour les conduites par exemple).
Par contre je ne comprend pas l'intérêt de plusieurs Mslink dans ce cas. Chaque objet est d'un seul type, ses informations doivent être contenues dans une seule table, donc pourquoi plusieurs couples MSlink/Entity_num ?

Côté FME, il mentionne déjà ces multiples champs Mslink dans l'analyse des données d'entrée, avant conversion, ce qui me laisse penser que cela  reflète bien la structure de la base.

Pour mes requêtes, j'utilise le générateur de requête Visual SQL de Microstation, mais les requêtes ont lieu directement sur la base de données Oracle. A partir de laquelle je peux consulter les objets dans Microstation ensuite seulement. Or,je sais que certains objets de ma base de donnée graphique ne sont pas liés à la base Oracle. Je voudrais donc consulter ou interroger directement la base de donnée graphique i.e les objets seulement, par leur Mslink par exemple, qu'ils soient dans la BD Oracle ou non.

Question Bonus : Microstation affiche le nombre d'éléments par couche. Or, je trouve un nombre d'éléments sensiblement différent si je sélectionne graphiquement tous les objets d'une couche. De l'ordre de 59 000 Objets selon Microstation, contre 54 000 sélectionnés graphiquement pour la même couche. Comment est-ce possible ?

Alex

Hors ligne

 

#6 Mon 10 October 2011 14:12

Jean-Michel
Membre
Lieu: An Oriant /Lorient
Date d'inscription: 3 Oct 2005
Messages: 3909

Re: Anomalies Base de donnée Microstation/Oracle-Access

Question Bonus : Microstation affiche le nombre d'éléments par couche. Or, je trouve un nombre d'éléments sensiblement différent si je sélectionne graphiquement tous les objets d'une couche. De l'ordre de 59 000 Objets selon Microstation, contre 54 000 sélectionnés graphiquement pour la même couche. Comment est-ce possible ?


Il se peut que des objets "fantômes" trainent dans le fichier DGN...
Cà peut être (termes non certifiés !)
- des points pour lesquels aucun objet n'est associé
- des lignes de longueur nulle (points de départ et d'arrivée identiques),
- etc...
pour info lorsqu'on dessine sous Microstation, on peut placer des points, qui serviront ensuite pour dessiner...
Si rien n'est dessiné, les points peuvent subsister.
Il y a des outils de "nettoyage" efficaces dans Microstation pour détecter et éliminer cela (sélection par attributs, etc...)
Mais j'ai un peu perdu la main sur Microstation...


Jean-Michel
GeoRezo, c'est des blogs, un wiki, un Netvibes ...
GeoRezo vous aide ==> Aidez GeoRezo !

Hors ligne

 

#7 Mon 10 October 2011 14:43

j.rolland
Participant occasionnel
Lieu: MONTPELLIER
Date d'inscription: 12 Sep 2005
Messages: 40

Re: Anomalies Base de donnée Microstation/Oracle-Access

Bonjour,

Dans Microstation un élément graphique peut être lié à plusieurs tables, l'ENTITYNUM permet de trouver la table à laquelle l'élément est lié, et le MSLINK l'enregistrement dans cette table auquel l'élément est lié.
Le fait de trouver plusieurs MSLINK et ENTITYNUM signifie donc qu'un élément est lié à plusieurs table.

Tu parles de FME , tu souhaites exporter tes données vers un autre format ?

INFO: Pour supprimer d'éventuels éléments "fantômes" il suffit de comprimer le fichier.

Jérôme


Jérôme ROLLAND

FIT-ESIC

Hors ligne

 

#8 Wed 12 October 2011 12:03

Alex Rabat
Participant occasionnel
Date d'inscription: 21 Sep 2011
Messages: 13

Re: Anomalies Base de donnée Microstation/Oracle-Access

Bonjour,

Pour information, voici les conclusions auxquelles je suis arrivé après une journée d'investigation :

L'observation la plus générale et la plus importante est que le comportement des objets est normal et indépendant de la valeur du champ mslink_1 ou mslink_2. (Affichage et lien avec la base de données Oracle)

Ces champs contiennent soit :
- des mslink pointant vers le même objet que celui désigné par le mslink_0 si l'entity_num est correct.
- des enregistrements qui ne figurent pas dans la bonne table lorsque l'entity_num est erroné.

Au cours de notre recherche, nous avons rencontré des objets non conformes ou non renseignés mais il n'est pas possible d'établir de règle pour les trouver en fonction des données contenues dans les champs mslink_1, entiy_num_1 ou mslink_2, entiy_num_2.

Pour répondre à vos questions :
J'utilise FME car je n'arrive pas à consulter les données attributaires des objets autrement qu'en passant par la base de données Oracle. Je veux m'attaquer uniquement aux objets graphiques et consulter les tables qui contiennent uniquement les mslink et entity_num.
J'ai réalisé un export au format Access. J'avais de nombreux enregistrements vides. Pour savoir à quoi ils correspondaient, j'ai fait un export au format .shp et constaté qu'ils correspondaient bien à des objets graphiques existants. Cela m'a permis également de faire des analyses en affichant les données différement suivant leurs attributs.

Je vais partir à la chasse aux fantômes et chercher la fonction "Comprimer" évoquée par Jérôme.

Je vais aussi essayer de tester comment il est possible d'attribuer plusieurs Mslink / entity_num à un même objet.

Merci, je vous tiendrai au courant des résultats.

Alex


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#9 Mon 17 October 2011 14:30

Alex Rabat
Participant occasionnel
Date d'inscription: 21 Sep 2011
Messages: 13

Re: Anomalies Base de donnée Microstation/Oracle-Access

Test sur l'origine de la création de multiples mslinks

Hypothèse : Les multiples mslink proviennent de l'attribution successive de plusieurs fiches à un même objet graphique.

On teste cette hypothèse en nous mettant en situation :
-    Création de la conduite et attachement de la fiche mslink 85785.
-    Création d’une nouvelle fiche mslink 85786 et attachement au même objet. Pas de message d’erreur.
-    Création d’une nouvelle fiche vanne mslink 34676 et attachement au même tronçon de conduite. Pas de message d’erreur.
-    Copie du projet Microstation pour export FME au format .mdb et observation de l’enregistrement mslink_0 = 85785.

Nous obtenons l'enregistrement suivant dans l'export au format Access du fichier Microstation :
entity_num_0    mslink_0    entity_num_1    mslink_1    entity_num_2    mslink_2
21                     85785    21                    85786                 34    34676

Cet enregistrement est conforme au résultat attendu. L'hypothèse est validée.
L'origine des multiples mslink est l'attribution de plusieurs fiches au même objet. Cette fiche peut décrire un objet de type différent de celui de l'objet graphique.
Ce phénomène est dû à l'absence de contrôle lors de la saisie des données :
-    Contrôle pour savoir si l'objet graphique est déjà lié à une fiche.
-    Contrôle de l'attribution d'une fiche du même type que l'objet sélectionné.

Hors ligne

 

#10 Mon 17 October 2011 14:35

Alex Rabat
Participant occasionnel
Date d'inscription: 21 Sep 2011
Messages: 13

Re: Anomalies Base de donnée Microstation/Oracle-Access

Bonjour,

Nouvelle bizarrerie dans ma base de données : J'ai trouvé des tables Oracle contenant des données sur des objets de mon réseau HORS de MSCATALOG.

Ces tables :
- ont toutes le même format de nom de table :
NOMDELUTILISATEUR_AEXXXXX, XXXXX étant un nombre de 1 à 99999,
- contiennent un seul enregistrement. Cet enregistrement peut être vide ou non,
- ont la même structure que les tables des objets qu'elles décrivent,
- le mslink auquel elles font référence correspond toujours à un objet graphique,
- l'enregistrement peut exister, ou non, dans la table correspondant à l'entity_num de la base de données MS_CATALOG.
- Si cet enregistrement figure aussi dans la table SIG_EP_CONDUITE de MSCATALOG, l'objet a un fonctionnement normal et il dispose d'une fiche liée. Sinon, les informations relatives à cet objet ne sont stockées que dans cette table indépendante.

Avez vous déjà eu ce cas ?
Comment ces enregistrements ont-il pu être crées hors de MSCATALOG ?
Une idée sur l'origine de ces tables/enregistrements ?

Merci

Alex

Hors ligne

 

#11 Tue 18 October 2011 09:58

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 567
Site web

Re: Anomalies Base de donnée Microstation/Oracle-Access

Bonjour,

Cela fait penser à une table temporaire permettant de mémoriser la dernière fiche créée afin de reproposer à l'utilisateur les dernières valeurs saisies.
Ces tables ont probablement été générées par l'application dédiée à l'EP.

Concernant les mslinks multiples, c'est une possibilité standard de MicroStation de pouvoir attacher plusieurs fiches avec un entitynum différent à un même élément graphique; c'était notamment utilisé pour gérer les différentes classes d'objet (feature) dans MGE et Geographics, chaque élément graphique ayant alors 2 liens BD (c-à-d 2 couples entitynum/mslink, l'un identifiant la classe de l'objet (ex: objet BRANCHEMENT dans la table FEATURE, l'autre décrivant l'objet lui même avec ses attributs (l'enregistrement dans la table BRANCHEMENT))


Jean-Marie
Azimut

Hors ligne

 

#12 Tue 18 October 2011 10:42

Alex Rabat
Participant occasionnel
Date d'inscription: 21 Sep 2011
Messages: 13

Re: Anomalies Base de donnée Microstation/Oracle-Access

Bonjour,

Cela expliquerait alors que je trouve également un grand nombre de table dont le nom ressemble à "NOMDELUTILISATEUR.BIN$XXXXXXXXX==%0" dans Oracle, que je ne parvient pas à importer dans Access ? Il ne parvient pas à trouver l'objet. Causes possibles selon l’aide Microsoft Access :
•    L'objet spécifié n'existe pas.
•    Vous n'avez pas saisi correctement le nom de l'objet. Recherchez les traits de soulignement ( _ ) ou autres signes de ponctuation manquants et assurez-vous que vous n'avez pas saisi d'espaces en début de nom.
•    Si vous essayez d'ouvrir une table Btrieve, les chemins d'accès indiqués dans le fichier de définition de données File.ddf peuvent être incorrects. Assurez-vous que vos fichiers de données (.dat) sont dans les répertoires appropriés.

Il pourrait s'agir de tables supprimées dont il reste une trace car on a pas "Vidé la corbeille" ?

En faisant l'hypothèse que Jean-Marie ait raison et que ces tables soient temporaires :
1. Alors pourquoi persistent-elles dans la base de données Oracle ?
2. Comment se fait-il que l'on trouve parfois un enregistrement identique dans la table correspondante de la base MSCATALOG et parfois non ?
3. Des problèmes intempestifs et récurrents de connexion de l'application à la base de données auraient-ils pu générer cette anomalie ?

On avance. Doucement, mais on avance !

Merci,

Alex

Hors ligne

 

Pied de page des forums

Powered by FluxBB