Mit dem Skriptmodul können Objekte aus einer Intergraph GeoMedia Oracle Datenbank via ODBC gelesen werden. Der Modul unterstützt speziell das GeoMedia Datenmodell und die GeoMedia Geometrien.
Der Modul wird mit:
|INCL \script\gmorain.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Der Modul basiert auf den Modulen DBIN und ORAIN. Alle im Modul DBIN und ORAIN beschriebenen Anteile gelten daher auch für den Modul GMORAIN. Ziehen Sie deshalb die Dokumentationen der Module DBIN und ORAIN bei.
Folgende Parameter können in der Map DB_PARAM für
den Modul gesetzt werden:
| Parameter | req/opt | Beschreibung |
SOURCE | o | ODBC-Source der Datenbank. Muss gesetzt werden, falls die ODBC-Source nicht interaktiv abgefragt wird. |
USER | o | Datenbank User für die Verbindung mit der ODBC-Source. Muss gesetzt werden, falls die ODBC-Source nicht interaktiv abgefragt wird. |
PASSWORD | o | Datenbank Password für die Verbindung mit der ODBC-Source. Muss gesetzt werden, falls die ODBC-Source nicht interaktiv abgefragt wird. |
| o | ON oder OFF, Default
= OFF. Für jedes gelesene Objekt eine Zeile
ausgeben. |
Folgende Parameter können in der Map DBIN_PARAM
gesetzt werden:
| Parameter | req/opt | Beschreibung |
STATISTICS | o | ON oder OFF, Default
= OFF. Statistik anzeigen. |
SELECT_PARSE | o | ON oder OFF, Default
= ON. Definiert, ob ein eventuelles SQL-select
Statement geparst werden soll. Als Argument für für das Modul kann
ein SQL-select Statement definiert werden. Als Default wird dieses
select-Statement von geparst , um spezielle Attribute zu erkennen,
die vom ODBC-Treiber nicht unterstützt werden und speziell gelesen
werden müssen. Manchmal können select-Statements (komplexe Joins)
nicht erfolgreich geparst werden. In solchen Fällen ist dieser
Parameter auf OFF zu schalten. Sie müssen
besorgt sein, dass das select-Statement von ODBC verarbeitet
werden kann. |
Bei einer GeoMedia Oracle Datenbank können folgende Parameter in der
Map ORAIN_PARAM gesetzt werden:
| Parameter | req/opt | Beschreibung |
SPATIAL_PROCESS | o | ON oder OFF, Default
= OFF. Definiert ob Oracle Spatial Geometrien
gelesen werden sollen. Mit OFF werden die
Geometrien nicht gelesen. Mit ON werden die
Geometrien gelesen. |
Für die Anwendung der Oracle Spatial Option ist die entstprechende Dokumentation von Oracle zu beachten.
Folgende Parameter können in der Map
GMORAIN_PARAM gesetzt werden:
| Parameter | req/opt | Beschreibung |
GDOSYS_OWNER | o | <user>. Definiert bei einer
GeoMedia Oracle Datenbank den Benutzer für welchen in den
GeoMedia-Metadaten unter GDOSYS die Metadaten verarbeitet werden
sollen. |
Der Modul liefert pro IN-Objekt folgende Systemkomponenten:
| Komponente | req/opt | Beschreibung |
IN.TABLE(s) | r | Tablename des IN Objekts. |
IN.<Geometry>(g) | o | Ein Geometrie-Attribut wird mit demselben Namen wie in der Datenbank geliefert. Der enthaltene Wert entspricht einer ICS-Geometrie vom Typ point, line oder area. |
IN.<Geometry>_SDO_GEOMETRY(s) | o | Zusätzlich zu einem Geometrie-Attribut wird in einem Attribut mit dem Suffix _SDO_GEOMETRY die Oracle Spatial Geometrie als String geliefert. |
Alle weiteren Komponenten sind abhängig von der Tabellen-Definition in der Datenbank.
Für das Lesen von Oracle Spatial sind folgende Punkte zu beachten.
ODBC verarbeitet den Oracle Objekt-Typ MDSYS.SDO_GEOMETRY für die Geometrien nicht. Um die Geometrien über ODBC trotzdem lesen zu können, legt der Modul eine PL/SQL Funktion in Oracle an.
create function ILTOOL_SDO_GEOMETRY_TO_STRING (geom MDSYS.SDO_GEOMETRY) RETURN CLOB
Diese Funktion wandelt eine Geometrie vom Typ MDSYS.SDO_GEOMETRY in einen String um. Die Funktion wird vom Modul beim Lesen der Geometrien wie folgt angewendet.
select ILTOOL_SDO_GEOMETRY_TO_STRING(Geometrie) as Geometrie from Table
Die Funktion liefert die Geometrie als String, den der Modul dann in eine ICS-Geometrie umwandelt.
Der Oracle-User aus dem Daten gelesen werden sollen, muss deshalb die Berechtigung haben, eine Funktion anlegen zu können.
Der Modul beinhaltet alle Prozeduren und Methoden wie die Module DBIN und ORAIN. Ziehen Sie deshalb die Dokumentationen der Module DBIN und ORAIN bei. Zusätzlich stellt der Modul GMORAIN folgende Prozeduren und Methoden zur Verfügung.
| Prozedur | GMORAIN_OPEN [s input][] |
| Beschreibung | Öffnet eine Datenbank definiert
mit DB_PARAM.SOURCE und liest Objekte von der
Datenbank in Abhängigkeit von <input>.
Für <input> können folgende Werte
verwendet werden.
|
| Beispiel | |
|
| Prozedur | GMORAIN_READ_OBJECT [][b state] |
| Beschreibung | Liest das nächste IN-Objekt aus der geöffneten Datenbank-Tabelle. Die Prozedur wird von RUN1 automatisch aufgerufen. |
| Beispiel | |
| Prozedur | GMORAIN_CLOSE [][] |
| Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
| Beispiel | |
Der Modul GMORAIN stellt zusätzlich folgende Prozeduren und Methoden zur Verfügung.
| Methode | ORACLE.SDO_GEOMETRY_TO_GEOM [s sdo-geometry][(i VAlignment,) (i HAlignment,) (s text,)(r rotation,) g|li geometry, i dimension, s type, b status] |
| Beschreibung | Übersetzt eine Oracle-Spatial
Geometrie als String in eine ICS-Geometrie. Kann die Geometry
übersetzt werden, wird als Status TRUE
zurückgegen, ansonsten FALSE. Je nach SDO-Type
wird die Geometry als einzelne Geometry oder als Liste von
Geometrien zurückgegeben. Bei den Typen orientedpoint und
GeoMedia-Typ gmpoint wird zusätzlich die Rotation geliefert. Beim
GeoMedia-Typ gmtext wird zusätzlich die Rotation, der Text, das
horizontale und das vertikale Alignment geliefert. Folgende Typen
werden zurückgegeben: point, orientedpoint, line, polygon,
multipoint, multiline, multipolygon, collection, gmpoint,
gmtext. |
| Beispiel | |
Folgende Konversionen werden
durchgeführt:
|
! Diese ICS Konfiguration zeigt alle von gmorain.mod ! gelesenen Objekte in der .log Datei an. |LICENSE \license\iltoolspro.lic MAP USER_INPUT1 DIALOG => ODBC OPT => input END_MAP MAP DB_PARAM SOURCE => '' ! ODBC-Source USER => '' ! ODBC-User PASSWD => '' ! ODBC-Password END_MAP MAP DBIN_PARAM STATISTICS => ON END_MAP MAP ORAIN_PARAM STATISTICS => ON END_MAP MAP GMORAIN_PARAM GDOSYS_OWNER => '' END_MAP MAP INPUT_SOURCES I1 => GMORAIN,* END_MAP MAP INOUT I1 => DISPLAY_IN0 END_MAP |INCL \script\gmorain.mod |INCL \script\db2il\dbdisplay.out |INCL \script\run1.prg