Manual zur Excel-Oracle Schnittstelle

 
WEITER LESEN
Manual zur Excel-Oracle Schnittstelle
                     (Version 4.2.2008, Peter Jakob, Peter Waldner)

1. Funktion der Schnittstelle
Diese Schnittstelle ermöglicht das Transferieren von Daten aus einem Excel-Datenblatt in
eine Oracle Tabelle. Das Excel-Datenblatt muss mindestens für alle Primary Key Attribu-
te der Oracle Tabelle eine Spalte erhalten. Die Informationen, welche Oracle Tabelle
verwendet werden soll oder welche Spalte des Excel-Datenblattes welchem Attribut der
Oracle-Datenbank zugeordnet wird, ist im Kopf des jeweiligen Excel-Datenblattes fest-
gehalten.

Es gibt zwei Spezialversionen dieses Programms, mit denen mit einem Excel-Datenblatt
zwei verschiedene Oracle Tabellen „gespeist“ werden können. Solche Excel-Datenblätter
weisen für jede Tabelle im Kopf einen zugehörigen Konfigurationsteil auf; sie werden im
Kapitel 5 („Spezialversionen dieses Programms“) genauer beschrieben.

Diese Version der Schnittstelle wurde bisher nur auf PC’s getestet.

2. Installation Serverseite
Die Version fürs LWF befindet sich im Verzeichnis „N:\PRJ\LWF-Labor\MA\1. Nieder-
schläge\Daten\divers“.

Der Quellcode befindet sich im Verzeichnis „N:\WOEKOSP\MWO\dbgis\ado“.
Als Programmiersprache wird ausschliesslich VBA verwendet, welches sich in der Datei
„module-beo.xls“ befindet. Die Schnittstelle zur Datenbank basiert seit 2007 auf der
ADO-Technologie.

3. Installation Client-Seite (lokaler PC)
Damit die Kommunikation zur Datenbank funktioniert, müssen auf dem PC die Oracle
Client Tools installiert sein. An der WSL wird dies durch die Abteilung Informatik
durchgeführt.

Weiter müssen auf dem lokalen PC die Datenquelle zur Oracle Datenbank konfiguriert
sein, damit die Verbindung zur Datenbank klappt. Die Konfiguration erfolgt im Menü
  . Falls im User DSN die Quelle
(z.B. „Didyma“) nicht vorhanden ist muss sie, wie in der folgenden Abbildung dargestellt,
neu erstellt werden. Falls die Quelle vorhanden ist, kann anhand der folgenden Abbildung
die Quelle überprüft werden.

Das korrekte Funktionieren der Verbindung zur Datenbank kann in Excel wie folgt getes-
tet werden: Menu    wählen, dann
die entsprechende Datasource auswählen (z.B. „Didyma“) und den Login Dialog durch-
führen. Danach sollte der Query-Wizard erscheinen, in dem sämtliche Oracle Tabellen
sichtbar sind, auf die der eingeloggte Benutzer Zugriff hat. Falls der Wizard mit den Ta-
bellen erscheint, war der Test der Verbindung erfolgreich.
Abb 1: Konfiguration der Datenquelle (Data sources)

Es werden im Minimum die in Abb. 2 angekreuzten Bibliotheken im Excel benötigt, da-
mit die Schnittstelle normal funktionieren kann (Alt-F11 drücken, um in den Visualbasi-
ceditor zu gelangen, danach   wählen):
Abb. 2: Benötigte Bibliotheken im Excel

3.1. Neues Excel-Datenblatt für Oracle Datenimport konfigurieren
Es ist am einfachsten, eine Kopie eines Excel-Datenblattes mit bereits vorhandenem Kon-
figurations-Kopfdaten zu verwenden. Auf diese Weise werden die benannten Zellen
gleich mitkopiert und brauchen nur noch an die eigenen Bedürfnisse angepasst zu werden.
(Wenn mehrere Tabellenblaetter pro Excel-Datei verwendet werden sollen, geht die Me-
thode mit den benannten Zellen nicht mehr. Bei entsprechender Umstellung des Schalters
im VBA-Skript wird auf den Inhalt der ersten Zeile geachtet um die Konfigurationspara-
meter zu finden und nicht auf den Zellen-Namen. Siehe auch Kapitel 5: „Spezialversio-
nen dieses Programmes „)

Die folgende Liste gibt einen Überblick über die für alle Datenblätter allgemein gültigen
Konfigurationsparameter.

Allgemein gültige Konfigurationsparameter
SQL_Source: Name der Datenquelle, wie sie als Name der Datenquelle definiert wurde.
Format: DSN=MeineDatenQuelle (Bsp.: „didyma“ oder „knossos“)
SQL_Table: Die Sätze werde in die SQL-Tabelle mit diesem Namen eingefügt
Pos_Fields1: Ab dieser Excel Zelle werden die Attributnamen der SQL-Tabelle gelesen.
Pos_Fields2: Bis zu dieser Excel Zelle werden die Attributnamen der SQL-Tabelle gele-
sen.
Pos_Typ1: Ab dieser Excel Zelle werden die entsprechenden Variablentypen der SQL-
Tabelle gelesen. Gültige Variablentypen sind: C (Character), N (Number), D (Date) bzw.
CK, NK und DK. Die drei letzteren sind Schlüsselfelder (KEY) der entsprechenden Vari-
ablentypen
Pos_Typ2:     Bis zu dieser Excel Zelle werden die Variablentypen der SQL-Tabelle gele-
sen.
DebugOn:      Werte: False oder True. Bei True wird das SQL-Statment angezeigt.

3.2. Beschreibung der anwendungs-spezifischen Konfigurationsparameter
Die für den Datenimport relevanten Excel Kolonnen müssen den entsprechenden Attri-
butnamen der Oracle Tabelle zugeordnet werden. Dies geschieht in der im den durch
Pos_Fields1 bis Pos_Fields2 definierten Zellenbereich. Falls an der jeweiligen Position
der Zelle ein Oracle Attributsname eingetragen wird, werden die Daten beim Import in
die jeweilige Oracle Tabelle übertragen. Der Name der Oracle Tabelle wurde weiter oben
bei den allgemein gültigen Konfigurationsparametern definiert. Falls an einer Position
kein Oracle Spaltenname eingetragen wurde, passiert nicht.

Im Bereich Pos_Typ1 bis Pos_Typ2 werden die Datentypen der jeweiligen Excel Kolon-
nen eingetragen. Gültige Datentypen sind: C (Character), N (Number), D (Date) bzw. CK,
NK und DK. CK, NK und DK kennzeichnen Schlüsselfelder (Primary Keys) der ent-
sprechenden Variablentypen in der Oracle Tabelle.

3.3. Buttons (Befehlsschalflächen) im Kopf des Excel Arbeitsblatts installieren
Diese Buttons erleichtern die Arbeit mit der Schnittstelle gewaltig, weil die verschiede-
nen Operationen nach dem Markieren des Zellenbereichs leicht mit einem Mausklick
ausgeführt werden können.
Abb. 3: Buttons (Befehlschaltflächen) installieren

Um die buttons installieren muss die Datei „module-beo.xls“ in Excel geöffnet werden.
(Im LWF befindet sich diese Datei im Verzeichnis „N:\PRJ\LWF-Labor\MA\1. Nieder-
schläge\Daten\divers“.) Dann muss lediglich im Menü „View > Toolbars > Custom-
ize“ (bzw. „Ansicht> Symbolleisten > Anpassen“) der Eintrag „OracleExcel“ angewählt
werden. Danach sollten die buttons im Kopf des Excel Datenblattes sichtbar sein.

4. Übersicht über die verschiedenen, implementierten Funktionen
Einfügen der markierten Zeilen (Button „Einfügen“)
Die markierten Sätze werden in die Oracle Tabelle eingefügt. Falls Sätze mit gleichem
Primärschlüssel in der Datenbank vorhanden sind, wird eine Fehlermeldung ausgegeben
und der Einfügeprozess wird bei der fehlerhaften Zeile abgebrochen.

Ändern der markierten Zeilen (Button „Ändern“)
Die markierten Sätze werden in der Oracle Tabelle geändert. Falls die Sätze in der Da-
tenbank nicht vorhanden sind, wird eine Fehlermeldung ausgegeben und der Änderungs-
prozess wird bei der fehlerhaften Zeile unterbrochen.

Löschen der markierten Zeilen (Button „Löschen“)
Die markierten Sätze werden in der Oracle Tabelle gelöscht. Falls die Sätze in der Daten-
bank nicht vorhanden sind, wird eine Fehlermeldung ausgegeben und der Löschprozess
wird bei der fehlerhaften Zeile unterbrochen. Als Sicherheit gegen unbeabsichtigtes Lö-
schen von Daten in der Datenbank muss der Login-Dialog zur Datenbank erneut durchge-
führt werden.

Checken der Anzahl Sätze in der Oracle Datenbank (Button „DB_Bereich_Check“)
Es müssen mehrere Teile von ganzen Zeilen (Columns) oder mehrere ganze Zeilen selek-
tiert werden. Für die ganze oder teilweise markierte Zeile wird:
1. Ein Primärschlüssel Check durchgeführt, um zu schauen ob die Sätze in der DB vor-
handen sind.
2. Es werden alle Excel Werte mit den Werten in der DB verglichen, um festzustellen ob
die Werte identisch sind.
Bei Fehlern wird eine Fehlermeldung ausgegeben und der Cursor auf der fehlerhaften
Zeile positioniert.

Checken der Anzahl Sätze in der Oracle Datenbank (Button „DB_Sätze_zählen“)
Es müssen in einer beliebigen Zeile des Datenblattes bestimmte Zellen markiert werden.
Als Resultat erscheint in einer Meldung die Anzahl der Sätze, für die die markierten
Merkmale zutreffen.

Datenbankverbindung schliessen (Button „Logoff“)
Nach dem alle Operationen mit der Oracle Datenbank abgeschlossen sind, sollte immer
ein Logoff durchgeführt werden, damit die Datenbankverbindung geschlossen wird. Falls
danach erneut eine Operation mit der Oracle Datenbank durchgeführt wird, erscheint au-
tomatisch erneut ein Login Dialog, damit eine neue Verbindung zur Datenbank herge-
stellt werden kann.

5. Spezialversionen dieses Programms
Speziallfall 1: Mischproben
Die Tabellen beo.niedersl und beo.mischung erlauben es komplizierte Mischungsvorgän-
ge in der Datenbank zu erfassen, also auch, dass 1 Probe für verschiedene Mischproben
verwendet wird. Routinemässig ist jede Probe jedoch Teil von höchstens 1 Mischprobe
und damit die Dateneingabe übersichtlicher wird, wurden die beiden Datenbank-Tabellen
auf einem Excel-Blatt vereint. Diese Blätter enthalten demzufolge einen 2. Satz von Kon-
figurationsparametern und ein 2. Satz Kopfzeilen. In der Excel-Tabelle ist an die Namen
der Suffix "2" angehängt.

Spezialfall 2: Sammler-Clusternummern (samclnr)
Wie verschiedene andere Datenbank-Codes wird auch die Sammelclusternummer
(beo.niedersl.samclnr) nicht von Hand eingetippt, sondern mit einer Nachschlagefunktion,
die auf ein weiteres Excel-Blatt zugreift bestimmt. Eine Verbindung mit der Datenbank
wäre auch für dieses Blatt nützlich. Das Festlegen der Konfigurationsparameterwerte
kann jedoch nicht mit denselben Namen erfolgen, da derselbe Name nur einmal für die
ganze Excel-Datei vergeben werden kann. Die Zellen, welche die Konfigurationsparame-
ter enthalten sind alle mit einer eigenen Kopfzeile beschriftet, welche sich in der ersten
Zeile des Tabellenblatts befindet. Das Holen der Parameterwerte kann also auch über die-
se Zeile erfolgen.
Sie können auch lesen