www.qtsoftware.de
ForDBC
Zugriff auf Datenbanken und Tabellen in Fortran unter Windows

Mit ForDBC kann der Fortran Programmierer unter Windows Tabellen sämtlicher Datenbanken lesen und auch beschreiben, sofern sie mit einem ODBC Treiber geliefert werden.

Fast alle gängigen Datenbanken (wie bspw. von Oracle, Microsoft, Sybase) und Tabellenkalkulationen (bspw. Excel oder Lotus) bieten den Zugriff über den Open Database Connectivity Standard (ODBC) an.
Unter Windows ist eine ODBC Schnittstelle mit entsprechenden Funktionen bereits implementiert. Allerdings ist sie für Fortran Programmierer nur mit erheblichen Mühen zu verwenden.

ForDBC bietet hier Abhilfe. Es stellt ein Fortran spezifisches INTERFACE zu den ODBC Funktionen der Version 3.5 zur Verfügung, so daß sämtliche Funktionen, wie als SUBROUTINE oder FUNCTION in Fortran aufzurufen sind. Des weiteren enthält ForDBC hunderte von ODBC bzw. SQL spezifischen Konstanten und Beispielprogramme, die die Nutzung der grundlegenden Funktionen zeigen (Beispiel s.u.).

Die Beschreibung der ODBC API selbst findet sich beim Compaq/Digital/Intel Visual Fortran in der Online-Hilfe. Ansonsten ist sie im Microsoft Windows Platform Software Development Kit (SDK) zu finden, daß mit vielen Microsoft Entwicklungswerkzeugen mitgeliefert wird (bspw. MS Visual Studio .NET). Sie ist aber auch auf der Microsoft SoftwareDeveloper Network (MSDN) CD-ROM vorhanden. Oder man findet sie auf Microsofts Developer WebSite.

Um den Einstieg in die Programmierung mit ODBC zu erleichtern, ist ForDBC mit einem deutschen Handbuch ausgestattet, daß anhand mehrerer Beispiele den grundsätzlichen Aufbau eine ODBC Applikation in Fortran beschreibt. Diverse grundlegende, ablauffähige Beispiele, vollständig in Fortran programmiert, zeigen wie man auf Microsoft Access-und Excel-Tabellen lesend und schreibend zugreift.
Für Benutzer von Compaq und Intel Visual Fortran steht ein Workspace bzw. eine Solution bereit, die alle Beispielprojekte und Quellcodedateien enthält. Im Debugger kann damit der Ablauf der Beispielprogramme leicht nachvollzogen werden.


Beispiel

ForDBC wird mit einfachen Beispieldatenbanken - u.a. eine Excel-Tabelle (ODBCTest.xls) und eine MS/Access-Datenbank (test-db.mdb) - geliefert. Die MS/Access-Datenbank enthält eine Tabelle namens "Tabelle1", deren Aufbau und Inhalt wie folgt aussieht:

Sie enthält also 4 Spalten mit Namen "ID", "I4", "DP" und "STR". Das Beispiel soll dazu dienen, den Umgang mit den typischen Fortran Variablentypen INTEGER, REAL bzw. DOUBLE PRECISION und CHARACTER zu zeigen.
Um alle Werte der Tabelle abzufragen, würde man in SQL (SQL = Structured Query Language) bspw. wie folgt formulieren:

SELECT id, i4, dp, str FROM tabelle1

Will man den SQL Befehl in einem Fortran-Programm ausführen, so ist dies mit einer ODBC Funktion, die viaForDBC bereitgestellt wird, möglich:

iRet = SQLExecDirect( hStmt, &
"SELECT id,i4,dp,str FROM tabelle1"//CHAR(0), &
SQL_NTSL )

Damit wird zwar der SELECT-Befehl ausgeführt, aber um den Tabelleninhalt in einem Fortran-Programm zu erhalten, sind die Werte der Tabellenzeilen in korrespondierende Fortran Variablen zu transferieren. Wir deklarieren hierzu die Fortran-Variablen (hier in Fortran 77 Notation)

INTEGER*2 Id
INTEGER*4 I4
DOUBLE PRECISION DP
CHARACTER Str*30

denen wir sinnvollerweise Namen gegeben haben, die denen der Spalten entsprechen. Durch sogenanntes Column- bzw. Parameter-Binding werden die Fortran-Variablen an die Spaltenangaben im SQL-Befehl gebunden. Z.B. bindet der Aufruf

iRet = SQLBindColI2( hStmt, 1, &
SQL_C_SSHORT, Id, 0, cbFixedId )

den ersten Parameter ("id") des obigen SELECT-Befehls an die Fortran-Variable "Id", die wir oben als INTEGER*2 deklariert haben. Wird anschließend der SQL-Befehl

iRet = SQLFetch( hStmt )

ausgeführt, so wird der Fortran-Variablen "Id" der Wert zugewiesen, der sich in der mit "id" bezeichneten Spalte der Tabelle "tabelle1" in der gerade "aktuellen" Zeile befindet. Intern wird von SQLFetch ein Zeilen-Cursor mitgeführt, der zum Ende des Aufrufs von SQLFetch um 1 erhöht wird. D.h. um alle Ergebnisse des SELECT-Befehls zu erhalten, ist der SQLFetch-Aufruf zu wiederholen.

Ein vollständiges Beispielprogramm in Fortran, das zeigt, wie man obigen SELECT-Befehl mittels ODBC bzw. ForDBC umsetzt, finden Sie hier.

 

Support, Schulung etc.

Wenn Sie Fragen zu ForDBC haben, steht Ihnen der Entwickler gerne mit Rat und Tat zur Seite. Wir bieten sowohl Schulungen zu ForDBC an oder übernehmen auch Programmieraufträge, wenn Sie die Anbindung eines Fortran Programms an eine Datenbank extern erledigen lassen wollen.

 

 
This page in English language.
Preislisten / Bestellung
·
Schulungen
·
Links
·
·
·

Lieferumfang, Systemanforderungen etc.

   
Artikelstammkürzel FORDBC
Lieferumfang a) als Download bzw. Lieferung per eMail: Software und Online-Dokumentation
b) Software auf CD-ROM und Handbuch
Unterstützte
Betriebssystem(e)
PC/Windows
Systemanforderungen einige MB frei auf der Festplatte, sonst wie Betriebssystem; Fortran 95 Compiler (unterstützt werden derzeit Lahey LF95, Compaq Visual Fortran, Intel Visual Fortran, Salford FTN95 v4.x); Datenbank oder Tabelle mit ODBC Treiber
Hersteller QT software GmbH
Aktuelle Version Stand: 19.11.2005,
Dokumentation aktualisiert: 15.9.2007
Lizensierungsvarianten Einzelplatzlizenz
Lizenz- bzw. Laufzeitgebühren keine, bei Weitergabe von Programmen, die auf ForDBC basieren
Patches erhältlich nein
Updates erhältlich ja
Technischer Support QT software GmbH
Datenblatt erhältlich nein
Testversion

nein

Informationsstand 5. Mai 2008
zum Anfang
   

Hinweise zu Haftung & Urheberrecht bzgl. der Information auf dieser WebSeite.
Copyright QT software GmbH 2008. Alle Rechte vorbehalten.