8. Modul GMMDBIN - Intergraph GeoMedia ACCESS Datenbank lesen

8.1. Allgemeines

Mit dem Skriptmodul können Objekte aus einer Intergraph GeoMedia Access Datenbank gelesen werden. Der Modul unterstützt speziell das GeoMedia Datenmodell und die GeoMedia Geometrien.

Der Modul wird mit:

|INCL \script\gmmdbin.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

8.2. Abhängigkeiten von anderen Modulen

Der Modul basiert auf dem Modul DBIN. Alle im Modul DBIN beschriebenen Anteile gelten daher auch für den Modul GMMDBIN. Ziehen Sie deshalb die Dokumentationen des Modules DBIN bei.

8.3. Parametermap DB_PARAM

Folgende Parameter können in der Map DB_PARAM für den Modul gesetzt werden:

Parameterreq/optBeschreibung
SOURCEoODBC-Source der Datenbank. Muss gesetzt werden, falls die ODBC-Source nicht interaktiv abgefragt wird.
USERoDatenbank User für die Verbindung mit der ODBC-Source. Muss gesetzt werden, falls die ODBC-Source nicht interaktiv abgefragt wird.
PASSWORDoDatenbank Password für die Verbindung mit der ODBC-Source. Muss gesetzt werden, falls die ODBC-Source nicht interaktiv abgefragt wird.
TRACEoON oder OFF, Default = OFF. Für jedes gelesene Objekt eine Zeile ausgeben.

8.4. Parametermap DBIN_PARAM

Folgende Parameter können in der Map DBIN_PARAM gesetzt werden:

Parameterreq/optBeschreibung
STATISTICSoON oder OFF, Default = OFF. Statistik anzeigen.
SELECT_PARSEoON 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.

8.5. Parametermap GMMDBIN_PARAM

Zur Zeit stehen keine Parameter in der Map GMMDBIN_PARAM zur Verfügung.

Parameterreq/optBeschreibung
  

8.6. Objektmodell

Der Modul liefert pro IN-Objekt folgende Systemkomponenten:

Komponentereq/optBeschreibung
IN.TABLE(s)rTablename des IN Objekts.

Alle weiteren Komponenten sind abhängig von der Tabellen-Definition in der Datenbank.

8.7. Exportierte Prozeduren und Methoden

Der Modul beinhaltet alle Prozeduren und Methoden wie der Modul DBIN. Ziehen Sie deshalb die Dokumentationen des Modules DBIN bei. Zusätzlich stellt der Modul GMMDBIN folgende Prozeduren und Methoden zur Verfügung.

ProzedurGMMDBIN_OPEN [s input][]
Beschreibung

Öffnet eine Datenbank definiert und liest Objekte von der Datenbank in Abhängigkeit von <input>. Für <input> können folgende Werte verwendet werden.

*

Liest alle Tabellen der Datenbank.

<tablename>

Liest die Records der definierten Tabelle <tablename>.

<tablename>,<sql-select-statement>

Liest die Records der Tabelle <tablename> entsprechend dem SQL-select-Statement. Beinhaltet das SQL-select-Statement Hochkommas für Strings so sind die Hochkommas ' durch Anführungszeichen " zu ersetzen.

Die Prozedur wird von RUN1 automatisch aufgerufen.

Beispiel
'Buildings,select * from Buildings where Note = "For ski lodge"' GMMDBIN_OPEN
 
MAP INPUT_SOURCES
   I1 => GMMDBIN,Buildings,'select * from Buildings where Note = "For ski lodge"'
END_MAP
ProzedurGMMDBIN_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
GMMDBIN_READ_OBJECT [TRUE]
ProzedurGMMDBIN_CLOSE [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
GMMDBIN_CLOSE

Der Modul GMMDBIN stellt zusätzlich folgende Prozeduren und Methoden zur Verfügung.

MethodeGEOMEDIA.BLOB_TO_GEOM [B blob-geometry][g geometry]
BeschreibungÜbersetzt eine GeoMedia Access Geometrie in einem Blob in eine ICS-Geometrie.
Beispiel
VAR.BLOB GEOMEDIA.BLOB_TO_GEOM [geometry]
MethodeGEOMEDIA.BLOB_TO_GEOM [B blob-geometry][(i VAlignment,) (i HAlignment,) (r rotation,) g|li geometry, s type, b status]
BeschreibungÜbersetzt eine GeoMedia Geometrie als BLOB in eine ICS-Geometrie. Kann die Geometry übersetzt werden, wird als Status TRUE zurückgegen, ansonsten FALSE. Je nach Geometrie-Type wird die Geometry als einzelne Geometry oder als Liste von Geometrien zurückgegeben. Beim 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,line,area,list,gmpoint,gmtext.
Beispiel
IF IN.Geometrie GEOMEDIA.BLOB_TO_GEOM THEN
   => VAR.TYPE
   => VAR.DIM
   => VAR.GEOM
   IF    VAR.TYPE = 'gmpoint' THEN
      => VAR.ROT
   ELSIF VAR.TYPE = 'gmtext' THEN
      => VAR.TEXT
      => VAR.ROT
      => VAR.HALI
      => VAR.VALI
   END_IF
END_IF
 

Folgende Konversionen werden durchgeführt:

gdbPoint (10)

to point

gdbLinear (1)

to line

gdbAreal (2)

to area

gdbAnySpatial (3)

to point,line,area,gmpoint or gmtext

gdbOrientedPoint (10)

to point and orientation

gdbGraphicsText (5)

to point and orientation, text, horizontal alignment, vertical alignment

collection

list of point,line,area,gmpoint or gmtext

8.8. Skriptbeispiel

! Diese ICS Konfiguration zeigt alle von gmmdbin.mod
! gelesenen Objekte in der .log Datei an.

|LICENSE \license\iltools.lic

MAP USER_INPUT1
   DIALOG        => FILE
   MESSAGE       => 'Enter Access Input Database'
   FILE_FILTER   => mdb
   FILE_EXISTS   => TRUE
   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 GMMDBIN_PARAM
END_MAP

MAP INPUT_SOURCES
   I1 => GMMDBIN,*
END_MAP

MAP INOUT
   I1 => DISPLAY_IN0
END_MAP

|INCL \script\gmmdbin.mod
|INCL \script\db2il\dbdisplay.out
|INCL \script\run1.prg