18. Modul PGRESIN - PostGreSQL/PostGIS Datenbank lesen

18.1. Allgemeines

Mit dem Skriptmodul können Objekte aus einer POstGreSQL/PostGIS-Datenbank via ODBC gelesen werden. Der Modul unterstützt speziell die PostGreSQL Option PostGIS für räumliche Daten.

PGRESIN unterstützt sämtliche Geometry-Typen von PostGIS nach der OGC Simple Feature Specification.

Der Modul wird mit:

|INCL \script\pgresin.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

18.2. Abhängigkeiten von anderen Modulen

Der Modul PGRESIN ist eine Erweiterung des Moduls DBIN. Alle im Modul DBIN beschriebenen Anteile gelten auch für das Modul PGRESIN. Ziehen Sie deshalb auch die Dokumentation des Modules DBIN bei.

18.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.

18.4. Parametermap DBIN_PARAM

Folgende Parameter können in der Map DBIN_PARAM für den Modul 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.

18.5. Parametermap PGRESIN_PARAM

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

Parameterreq/optBeschreibung
SPATIAL_PROCESSoON oder OFF, Default = OFF. Definiert ob Spatial Geometrien gelesen werden sollen. Mit OFF werden die Geometrien nicht gelesen. Mit ON werden die Geometrien gelesen.

Für die Anwendung der PostGreSQL Option PostGIS ist die enstprechende Dokumentation von PostGIS zu beachten.

18.6. Objektmodell

Der Modul liefert pro IN-Objekt folgende Systemkomponenten:

Komponentereq/optBeschreibung
IN.TABLE(s)rTablename des IN Objekts.
IN.<Geometry>(g)oEin Geometrie-Attribut wird mit demselben Namen wie in der Datenbank geliefert. Der enthaltene Wert entspricht einer ICS-Geometrie vom Typ point, line oder area oder Listen von Geometrien.
IN.<Geometry>_OGCWKT_GEOMETRY(s)oZusätzlich zu einem Geometrie-Attribut wird in einem Attribut mit dem Suffix _OGCWKT_GEOMETRY die PostGIS Geometrie als OCS-WKT-String geliefert (WKT: Well Known Text nach OGC Simple Feature Specification).

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

18.7. Exportierte Prozeduren und Methoden

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

ProzedurPGRESIN_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. *Liest alle Tabellen der Datenbank.<tablename>Liest die Records der definierten Tabelle.<tablename>,<sql-select-statement>Liest die Records der definierten Tabelle 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
'CATEGORY,select * from CATEGORY where CNAME like "av%"' PGRESIN_OPEN
 
MAP INPUT_SOURCES
   I1 => PGRESIN,CATEGORY,'select * from CATEGORY where CNAME like "av%"'
END_MAP
ProzedurPGRESIN_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
PGRESIN_READ_OBJECT [TRUE]
ProzedurPGRESIN_CLOSE [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
PGRESIN_CLOSE
MethodeOGC.WKT2GEOM [s ogc-wkt-geometry][g|li ics-geometry]
BeschreibungÜbersetzt eine OGC-WKT-Geometrie als String in eine ICS-Geometrie.Folgende Typen werden zurückgegeben: POINT,LINESTRING,POLYGION,MULTIPOINT,MULTILINESTRING,MULTIPOLYGON,GEOMETRYCOLLECTION. (WKT: Well Known Text nach OGC Simple Feature Specification).
Beispiel
IN.Geometrie OGC.WKT2GEOM => VAR.GEOM
 

Folgende Konversionen werden durchgeführt:

OGC-point

to point

OGC-linestring

to line

OGC-polygon

to area

OGC-multipoint

to list of points

OGC-multilinestring

to list of lines

OGC-multipolygon

to list of areas

OGC-geometrycollection

to list of points und/oder lines und/oder areas

18.8. Skriptbeispiel

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

|LICENSE \license\iltools.lic

MAP USER_INPUT1
   DIALOG        => ODBC
   OPT           => input
END_MAP

MAP DB_PARAM
   SOURCE     => '' ! ODBC-Source
   USER       => '' ! ODBC-User
   PASSWD     => '' ! ODBC-Password
   TRACE      => OFF
END_MAP

MAP DBIN_PARAM
   STATISTICS           => ON
END_MAP

MAP PGRESIN_PARAM
   SPATIAL_PROCESS      => ON
END_MAP

MAP INPUT_SOURCES
   I1 => PGRESIN,*
END_MAP

MAP INOUT
   I1 => DISPLAY_IN0
END_MAP

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