6. Modul GDBIN - ESRI Personal Geodatabase ACCESS Datenbank lesen

6.1. Allgemeines

Mit dem Skriptmodul können Objekte aus einer ESRI-Geodatabase Access-Datenbank via ODBC gelesen werden. Der Modul unterstützt speziell das ESRI Geodatabase Access Datenmodell und die darin enthaltenen Geometrien.

Der Modul unterstützt die Personal Geodatabase 8.3/9.0/9.1/9.2.

Der Modul wird mit:

|INCL \script\gdbin.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

6.2. Abhängigkeiten von anderen Modulen

Der Modul GDBIN ist eine Erweiterung des Moduls DBIN. Alle im Modul DBIN beschriebenen Anteile gelten daher auch für das Modul GDBIN (s.a. Dokumentation des Moduls DBIN).

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

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

6.5. Objektmodell

Der Modul liefert pro IN-Objekt folgende Systemkomponenten:

Komponentereq/optBeschreibung
IN.TABLE(s)rTablename des IN Objekts.
IN.GDB_DATASET(s)rEnthält den Geodatabase Dataset-Namen.
IN.GDB_DATASET_SRID(i)rEnthält die Geodatabase Dataset-SRID-Identifikation.
IN.GDB_SUBTYPE_ATTR(s)oFalls die Tabelle ein Geodatabase-Subtype-Attribut enthält, so enthält diese Komponente den Attributname des Subtype-Attributes.
IN.<Attribute>_SUBTYPE(b)oFalls es sich beim Attribut um ein Geodatabase-Subtype-Attribut handelt, ist diese Komponente vorhanden.
IN.<Attribute>_TXT(s)oFalls es sich beim Attribut um eine Geodatabase-Domain vom Type Text handelt, so enthält diese Komponente den textuellen Wert.
IN.<Geom-Attribute>(g|li)oFalls es sich beim Attribut um eine Geometrie handelt, so enthält diese Komponente die Geometrie. Sind mehere Geometrien vorhanden, so enthält die Komponente eine Liste von Geometrien.
IN.<Geom-Attribute>_SRID(i)oFalls es sich beim Attribut um eine Geometrie handelt, so enthält diese Komponente die SRID-Identifikation.
IN.<Geom-Attribute>_DIM(i)oFalls es sich beim Attribut um eine Geometrie handelt, so enthält diese Komponente die Angabe zur Dimension 2 oder 3.
IN.<Geom-Attribute>_HASM(b)oFalls es sich beim Attribut um eine Geometrie handelt, so enthält diese Komponente die Angabe, ob das Attribute ein Measurement hat TRUE oder nicht FALSE. Die Measurement Dimension wird aber nicht gelesen.
IN.<Geom-Attribute>_BLOB(blob)oFalls es sich beim Attribut um eine Geometrie handelt, so enthält diese Komponente das Geodabase-BLOB der Geometrie.

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

6.6. 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 GDBIN folgende Prozeduren und Methoden zur Verfügung.

ProzedurGDBIN_OPEN [s input][]
Beschreibung

Öffnet eine Datenbank definiert mitDB_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 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
'blocks,select * from blocks where Res = 1' GDBIN_OPEN
 
MAP INPUT_SOURCES
   I1 => GDBIN,blocks,'select * from blocks where res = 1'
END_MAP
ProzedurGDBIN_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
GDBIN_READ_OBJECT [TRUE]
ProzedurGDBIN_CLOSE [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
GDBIN_CLOSE
MeothodeGDB.BLOB_TO_GEOM [B blob][li list | g geometry]
BeschreibungWandelt die Geometrie <blob> in eine ICS Geometrie um. Sind mehrere Geometrien vorhanden, so wird eine Liste von Geometrien zurückgegeben. <blob> ist die binary Geodatabase-Geometrie.
Beispiel
VAR.BLOB GDB.BLOB_TO_GEOM [line]

6.7. Skriptbeispiel

! Diese ICS Konfiguration zeigt alle von gdbin.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
END_MAP

MAP DBIN_PARAM
   STATISTICS     => ON
END_MAP

MAP INPUT_SOURCES
   I1 => GDBIN,*
END_MAP

MAP INOUT
   I1 => DISPLAY_OBJECT1,IN
END_MAP

|INCL \script\gdbin.mod
|INCL \script\run1.prg