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. |
TRACE | 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.
Die Prozedur wird von RUN1 automatisch aufgerufen. |
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