08.05.2013 Aufrufe

deutschen Handbuch - QT software GmbH

deutschen Handbuch - QT software GmbH

deutschen Handbuch - QT software GmbH

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

.<br />

END<br />

ValPtr, 0 )<br />

Wie dem Beispiel zu entnehmen ist, wird hier der Variable ValPtr, die vom<br />

Typ SQLPOINTER ist, die Speicheradresse der Variablen Value<br />

zugewiesen, da die Funktion SQLSetConnectAttr bei Angabe des<br />

Attributs SQL_ATTR_QUIET_MODE entweder einen Null-Pointer (oder<br />

ein Window-Handle) erwartet (und nicht die Variable Value selbst).<br />

Allgemein gilt, daß eine Variable, die vom Typ SQLPOINTER ist, entweder<br />

die Adresse einer Variablen bzw. eines Feldes oder einen Wert übergibt<br />

(meist wird dies durch ein anderes Argument der Funktion gesteuert). Die<br />

Adresse kann i.A. mit der Funktion LOC() bestimmt werden (bei manchen<br />

Compilern auch mit der ehemaligen VAX Funktion POINTER(), die nicht<br />

mit dem Fortran 90 POINTER Befehl zu verwechseln ist). Ob ein Pointer<br />

oder ein Wert zu übergeben ist, ist der jeweiligen Funktionsbeschreibung in<br />

der ODBC API bzw. dem Anhang A mit der ForDBC Funktionsübersicht zu<br />

entnehmen.<br />

Die Funktionsschnittstellen (INTERFACEs) sind im Modul<br />

qtODBCInterfaces<br />

(Datei: qtODBCInterfaces.mod)<br />

niedergelegt. Im Anhang A wird das Modul aufgelistet. Es zeigt die<br />

verfügbaren Funktionen und die notwendigen Typdeklarationen für ihre<br />

Argumente.<br />

Compiler-spezifische Definitionen sind im Modul<br />

qtODBC_Compiler<br />

(Datei: qtODBC_compiler.mod<br />

mit compiler = CVF, DVF, FTN, IVF, LF90, LF95 usf.)<br />

zu finden. Da der Modulname immer der gleiche ist, die Dateinamen in<br />

Abhängigkeit vom verwendeten Compiler jedoch variieren, ist so bei einem<br />

Compilerwechsel eine compiler-spezifische Anpassung des Quellcode Ihrer<br />

ODBC Applikationen i.A. nicht nötig.<br />

Der ODBC Treiber Manager ermöglicht einer Applikation den Zugriff auf<br />

ODBC Treiber mithilfe einer entsprechenden .DLL (z.B. ODBC32.DLL).<br />

Für das Binden (Link) benötigt die Applikation hierzu die<br />

zugehörige Importbibliothek (ODBC32.LIB). Sie ist sowohl für<br />

32-Bit Systeme als auch für 64-Bit Systeme verfügbar. Beide Varianten<br />

tragen den gleichen Namen. Entsprechend ist beim Binden darauf zu<br />

achten, daß der Verzeichnisname der ODBC32.LIB korrekt angegeben<br />

wird (so er denn verwendet wird).<br />

Der Treiber Manager verwaltet und leitet den Zugriff auf den Treiber und<br />

somit die Verbindung zu der dem Treiber zugehörigen .DLL.<br />

5.1 Datentransfer zwischen Applikation und ODBC<br />

Treiber bzw. Treiber Manager<br />

Der "Transfer" der Daten zwischen Applikation und ODBC Treiber bzw.<br />

Treiber Manager erfolgt über die Argumente der Funktionen bzw. der<br />

Speicherbereiche, die durch sie den Funktionen mitgeteilt werden. Dies<br />

können also in unseren Fortran Programmen die üblichen INTEGER,<br />

REAL oder CHARACTER Variablen sein. Mitunter bekommen wir es auch<br />

mit Zeigern (pointer) zu tun. D.h. wir müssen die Startadressen von<br />

Speicherbereichen angeben. Auch die Verwendung von CHARACTER<br />

Argumenten (strings) erfordert Aufmerksamkeit, da wir uns an die<br />

C-typische Behandlung anpassen und gewisse Regeln beachten müssen.<br />

http://www.qt<strong>software</strong>.de ForDBC - Fortran Database Connectivity 16

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!