Doppelte FID - wie wieder loswerden? / Autodesk GIS Produkte
Peter2 21. Dez. 2021, 15:51

Map 2018, Oracle / Industry Model

Aus irgendwelchen Gründen - Altfehler? Konvertierungen? - haben wir in unseren Raumplanungsdaten doppelte FID. Sie laufen zwischen versch. Objektklassen, und das praktische Problem ist u.a.: man wählt ein Objekt - will es löschen - und der Nummernkollege verschwindet ...
1-Klick-Wartung meldet nichts, TB_UFID ist eindeutig, Support hat derzeit auch keine Lösung ...

Hat sich schon jemand damit herumgeschlagen?

Idefixus 10. Jan. 2022, 16:31

Hallo Peter,
das habe ich noch nicht erlebt, dass FIDs innerhalb einer Map-3D-Fachschale doppelt sind. Bist du dir sicher, dass es doppelte FIDs sind?
Weg kriegen dürfte man die nur schwer. Wahrscheinlich müsste man alle Objekte mit gleicher FID löschen und händisch neu anlegen.
Theoretisch könntest du die doppelten FIDs unabhängig von der Tabelle TB_UFID mit z. B. SQL Sheet ermitteln, in dem du erst alle Objektklassen aus TB_DICTIONARY heraussuchst:
select distinct(f_class_id) from tb_ufid order by f_class_id;
die Namen der Tabellen bekommst du danach beispielsweise für die f_class_id 1:
select f_class_name from tb_dictionary where f_class_id = 1;
Dann alle FIDs aus den Objektklassen in eine Zwischentabelle schreiben lassen und darin doppelte Werte abfragen:
select fid from zwischentabelle group by fid having count(fid) > 1.
Wenn Map 3D richtig funktioniert hat, sollte die Abfrage keine Zeile anzeigen; wenn es FID-Fehler gemacht hätte, würde da mindestens eine Zeile angezeigt werden.
Viele Grüße
Idefixus

Peter2 12. Jan. 2022, 11:18

Danke, Idefixus

die Abfrage der Duplikate ist gelöst, aber bei der Behebung auch der Support nicht vorangekommen.

Das Problem mit dem Löschen innerhalb von MAp ist, dass er "das falsche" löscht. Beispiel:
- Linie und Zentroid haben gleiche FID
- du klickst auf Linie und sagst löschen
- er löscht aber das Zentroid, weil intern der Löschauftrag anscheinend lautet "lösche das erste Element mit der FID xy" - und das muss nicht die Linie sein

Bernd P 12. Jan. 2022, 13:30

Servus,

Und was ist nach dem löschen? Ist der Fehler danach behoben?

Stelli1 12. Jan. 2022, 13:31

Hallo Peter,
im SQL Sheet mit
delete from [MeineTabelle] where fid=xxx;
Danach mit commit; festschreiben, fertig.

Stelli

Peter2 12. Jan. 2022, 15:25

Ich fürchte mich vor der Auswirkungen auf die ganzen verknüpften Daten: Geometrie - Texte - Objekte .....