Toolmaker Produkt-Dokumentation

Besonderheiten der Datenbanken

Inhaltsübersicht

directaccess4i bietet Zugriff auf verschiedene Datenbanken.

In diesem Kapitel erfahren Sie nun, welche Besonderheiten es bei den verschiedenen Datenbanken in Bezug auf directaccess4i zu beachten gibt. Besonderheiten bedeutet in diesem Fall, ob Sie einen speziellen Datenbank Client auf dem directaccess4i Gateway PC installieren müssen oder ob es irgendwelche Dinge bei den SQL Befehlen zu beachten gibt.

Beziehen Sie den jeweiligen Datenbankadministrator mit ein, da Sie bei den meisten Datenbanken einen entsprechenden Benutzer/Kennwort benötigen, um überhaupt zugreifen zu können. Auch müssen Sie teilweise bestimmte Datenbank-Kennungen, Schema-Namen, Eigner, etc. kennen, was Ihnen i.d.R. der jeweilige Datenbankadministrator mitteilen kann.

Ebenfalls empfehlenswert ist die Installation/Nutzung eines entsprechenden Tools der jeweiligen Datenbank, um auf die Datenbank zuzugreifen. Als Beispiel für MySQL sei hier der MySQL Query Browser genannt. Mit diesem (kostenlosen) Tool, kann man ganz einfach auf eine MySQL Datenbank zugreifen.Ein solches Tool empfiehlt sich immer für Tests, da Sie damit zunächst die Berechtigungen Ihres Benutzers und die jeweiligen SQL Befehle testen können. In vielen Fällen haben nämlich Kunden schon bei unserer Hotline angerufen, weil sie Probleme hatten, mit directaccess4i bestimmte Daten aus der externen Datenbank zu lesen. Wie sich bei einem Test mit einem „nativen" Datenbank Tool herausstellte, hatte der Benutzer nicht die notwendigen Rechte und die Datenbank gab keinen entsprechenden Fehler zurück oder der SQL Befehl lieferte einfach keine Daten zurück.

Oracle

Um mit directaccess4i auf eine Oracle Datenbank zugreifen zu können, müssen Sie den Oracle Client auf dem directaccess4i Gateway PC installieren und so konfigurieren, dass er eine Verbindung zur gewünschten Oracle Datenbank aufbauen kann. directaccess4i nutzt die Konfiguration des Oracle Clients, sowie den ADO.NET Datenprovider von Oracle, der um einiges schneller und besser ist, als der von Microsoft mitgelieferte Provider. Der Oracle Client wird mit der jeweiligen Datenbankversion ausgeliefert und sollte von Ihrem Datenbank Administrator zur Verfügung gestellt werden.

Bei Oracle Datenbanken müssen im Parameter CTENHANCED (im STRDAISQL Parameter ERWEITERT) noch die Oracle Portnummer + ein Schrägstrich + der Oracle Servicename angegeben werden. Die Portnummer lautet standardmäßig 1521 und der Service oft ORCL. Als Beispiel also:

1521/ORCL

Ferner sollten Sie bei Verwenden eines Oracle Real Application Clusters

(RAC) die Hinweise im FAQ Kapitel Seite 36 Punkt 6 beachten.

Microsoft SQL Server

Das Beste am MS SQL Server (ab 2000) ist, dass man, um mittels directaccess4i darauf zuzugreifen, keinerlei zusätzliche Clients oder Treiber benötigt. Microsoft hat alle notwendigen Funktionen bereits in das Hauseigene .net Framework integriert.

D.h. um auf einen MS SQL Server zuzugreifen, müssen Sie nur noch die IP Adresse/DNS Namen, Benutzer/Kennwort, sowie die gewünschte Datenbank und Tabelle kennen.

Wenn Sie auf Microsoft SQL Server zugreifen, müssen Sie die entsprechende Syntax berücksichtigen. Bei Microsoft muss man bei einem SELECT unbedingt auch den Owner der Tabelle angeben bzw. diesen durch einen weiteren Punkt zwischen Datenbankname und Tabellenname angeben.Beispiel: SELECT * FROM NORTHWIND..EMPLOYEES

MySQL

Auch für MySQL V4/V5 benötigen Sie keinerlei zusätzliche Clients oder Treiber. Die benötigte DLL wird mit directaccess4i mitgeliefert, so dass directaccess4i native über ADO.NET auf MySQL zugreifen kann.

IBM DB2

Bei der IBM DB2 muss man grundsätzlich zwischen 3 verschiedenen Versionen unterscheiden:

  1. IBM DB2 for i OS Wenn Sie auf eine DB2 for i OS zugreifen möchten, benötigen Sie den IBM ADO.NET Datenprovider, der sich in IBM i Access ab V5R3 oder höher wieder findet. Da Sie diesen auf jeden Fall zum Betrieb von directaccess4i benötigen, ist er auf dem Gateway PC bereits installiert.
  2. IBM DB2 for z OS Bei der Mainframe Variante von DB2 benötigen Sie eine zusätzliche Komponente, die Sie über Toolmaker Software beziehen können. Sprechen Sie unseren Vertrieb hierzu an.
  3. IBM DB2 for LUW (Linux, Unix and Windows)Für die Variante der DB2 gibt es einen speziellen Client, der mit der Datenbank ausgeliefert wird. Dieser Client muss auf dem directaccess4i Gateway PC installiert werden. Einrichten muss man weiter nichts. Die Einstellungen werden via Parameter für directaccess4i übergeben.Wichtig bei dieser DB2 Version ist noch, dass Sie im Parameter CTENHANCED (s. Kapitel 6)den Namen der Datenbank angeben müssen, sowie einen Benutzer mit Kennwort, der für diese Datenbank und die gewünschten Tabellen berechtigt ist.

Firebird

Bei Firebird handelt es sich um eine OpenSource Datenbank, die ebenfalls einen nativen .net Datenprovider über die OpenSource Plattform SourceForge zur Verfügung stellt. directaccess4i verwendet aktuell den .net Datenprovider in Version 2.0.5. Diesen können Sie unter

http://sourceforge.net/projects/firebird/files/firebird-net-provider

herunterladen und auf dem directaccess4i Gateway PC installieren.

Sybase Advantage Database Server

Auch der Advantage Database Server von Sybase wird nativ über einen ADO.NET Datenprovider in directaccess4i unterstützt. Um dies zu bewerkstelligen, laden Sie bitte den ADO.NET Datenprovider 8.1 von der entsprechenden Sybase Website herunter und installieren diesen auf dem directaccess4i Gateway PC.

Informix

Bei der IBM eigenen Informix Datenbank läuft leider alles etwas anders, als bei allen anderen Datenbanken. Auch hier wird ein spezieller Client von IBM benötigt. Dieser muss jedoch mit dem CSDK (Client Software Development Kit) auf dem directaccess4i Gateway Rechner installiert und auch noch eingerichtet werden.

Nach erfolgreicher Installation des CSDK müssen Sie auf dem directaccess4i Gateway PC mittels SETNET32 die Informationen zum Verbinden mit dem Datenbankserver, sowie der Datenbank eintragen. Ihr Informix Administrator wird Sie mit Sicherheit hier unterstützen.

Letzten Endes muss noch geklärt werden, ob auf dem Informix Datenbankserver das SQL Script „cdotnet.sql" bereits irgendwann ausgeführt wurde oder nicht. Sollte dies nicht der Fall sein, muss Ihr Informix Datenbankadministrator dieses Script (es befindet sich im Verzeichnis c:\Programme\IBM\Informix\Client-SDK\etc auf dem directaccess4i Gateway PC) auf dem Datenbankserver einmalig ausführen, damit .net Anwendungen generell auf die Informix Datenbank zugreifen können. Dieses Script ist nicht speziell für directaccess4i , sondern gilt für alle Anwendungen, die mittels ADO.NET Datenprovider auf die Informix Datenbank zugreifen möchten.

Microsoft Access/Excel

Für Microsoft Access/Excel gilt ähnliches wie für den Microsoft SQL Server. Auch für Access benötigt mein keine zusätzlichen Treiber oder Clients.

Ein ganz wichtiger Punkt bei der Arbeit mit Access/Excel und directaccess4i ist jedoch, dass man bei der Angabe der Datenbank darauf achten muss, dass hier die entsprechende MDB oder XLS Datei angegeben wird und zwar immer aus der Sicht des directaccess4i Gateway PCs.D.h. wenn sich die Access Datenbank auf einem Fileserver befindet, dessen Freigabe auf dem Gateway PC z.B. unter dem Laufwerksbuchstaben F: zugeordnet ist, lautet der Eintrag der Zieldatenbank bei directaccess4i z.B.: F:\Dateien\Access\meineDB.mdb

Gleiches gilt für Excel.

Obwohl Excel keine Datenbank ist, kann man mittels directaccess4i darauf zugreifen. Wie Sie weiter unten noch sehen werden, gibt es hierzu verschiedene Modi. Mit Mode 07 ist es z.B. ganz einfach möglich mit nur einem SQL SELECT, eine beliebige System i Datei (bzw. mehrere, die im SELECT verknüpft werden können) in ein Excel Sheet zu exportieren.

Verwenden Sie Excel nicht mit Mode 07, müssen Sie noch eine Besonderheit beachten. Wenn Sie z.B. einen Select auf eine existierende Excel Tabelle ausführen möchten, muss die Tabelle in eckige Klammern gesetzt werden:

Beispiel:

select * from [Sheet1$A2:H20]

Damit werden alle Daten von Zeile 2 bis 20 mit den Spalten A bis H gelesen.

Beim Hinzufügen von Datensätzen verwenden Sie den ganz normalen SQL INSERT Befehl. Auch hier gilt zu beachten, dass die Tabelle bei Excel in Eckigen Klammern stehen muss. Beispiel:

insert into [Sheet1$] VALUES('directaccess4i ', 'Excel Tool', 'Toolmaker Software GmbH', 'IT', '555', 'Master')

Alle anderen

Alle anderen Datenbanken können mit directaccess4i auch verwendet werden und zwar über einen ODBC Treiber. I.d.R. sind die ODBC Treiber nicht so schnell wie der direkte Zugriff via ADO.NET, jedoch gibt es auch hier Ausnahmen. Außerdem gibt es leider (immer noch) Datenbanken, für die es keinen ADO.NET Datenprovider gibt. Bei ODBC brauchen Sie in directaccess4i lediglich den Namen des von Ihnen auf dem directaccess4i Gateway Rechners eingerichteten ODBC Treibers anzugeben. Der Rest wird in der ODBC Verwaltung von Windows eingerichtet.

Sollten Sie eine weitere Datenbank nativ über ADO.NET mit directaccess4i ansprechen wollen, geben Sie uns bitte Bescheid, damit wir dies prüfen und ggf. einbauen können.