Mit dem Skriptmodul können Objekte aus einer ODBC-Datenbank (z.B. MS-Access, Oracle) gelesen werden.
Der Modul wird mit:
|INCL \script\dbin.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Der Modul importiert die Klasse DB
. Es stehen
daher auch alle Methoden der Klasse DB
zur Verfügung
(s.a. iG/Script Benutzer- und Referenzhandbuch).
Folgende Parameter können in der Map DB_PARAM
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 für den Modul 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. |
Der Modul liefert pro IN-Objekt folgende Systemkomponenten:
Komponente | req/opt | Beschreibung |
IN.TABLE(s) | r | Tablename des IN Objekts. |
Alle weiteren Komponenten sind abhängig von der Tabellen-Definition in der Datenbank.
Die Methode DB.GET_INFO
liefert das Datenmodell
der Datenbank in einer Objektstruktur. Auf die einzelnen Komponenten
dieser Objektstruktur kann zugegriffen werden.
Anwendung der Methode DB.GET_INFO
:
MAP DB_MODEL
END_MAP
&DB_MODEL DB.GET_INFO
Objektstruktur Datenmodell:
DB_MODEL (m)
DB_NAME -> (s) <Name>
DB_USER -> (s) <DB-User>
DB_PASSWORD -> (s) <DB-Password>
PRODUKT -> (s) <Produkt>
VERSION -> (s) <Version>
TABLES -> (m)
:
<Tablename> -> (m)
TABLENAME -> (s) <Tablename>
TABLEQUALIFIER -> (s) <Tabelqualifier>
TABLEOWNER -> (s) <Tableowner>
TABLETYPE -> (s) <Tabletype>
COLUMNS -> (m)
:
<Columnname> -> (m)
NAME -> (s) <Name>
TYPENAME -> (s) <Typename>
DATATYPE -> (i) <Datatype>
LENGTH -> (i) <Length>
PRECISION -> (i) <Precision>
SCALE -> (i) <Scale>
RADIX -> (i) <Radix>
NULLABLE -> (b) <Nullable>
REMARKS -> (s) <Remarks>
Zugriffsbeispiele Objektstruktur Datenmodell:
! Display User,Product,Version
DISPLAY DB_MODEL
! Display Tables
DISPLAY DB_MODEL.TABLES
! Display Table Category
DISPLAY DB_MODEL.TABLES.CATEGORY
! Display Columns of Table Category
DISPLAY DB_MODEL.TABLES.CATEGORY.COLUMNS
! Display Column MSLINK of Table Category
DISPLAY DB_MODEL.TABLES.CATEGORY.COLUMNS.MSLINK
! Display Typename of Column MSLINK of Table Category
DISPLAY DB_MODEL.TABLES.CATEGORY.COLUMNS.MSLINK.TYPENAME
Prozedur | DBIN_OPEN [s input][] |
Beschreibung | Öffnet eine Datenbank
definiert in
Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
|
Prozedur | DBIN_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 | DBIN_CLOSE [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
! Diese ICS Konfiguration zeigt alle von DBIN ! gelesenen Objekte in der .log Datei an. |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => ODBC OPT => input END_MAP MAP DB_PARAM END_MAP MAP DBIN_PARAM STATISTICS => ON END_MAP MAP INPUT_SOURCES I1 => DBIN,* END_MAP MAP INOUT I1 => DISPLAY_OBJECT1,IN END_MAP |INCL \script\dbin.mod |INCL \script\run1.prg