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

Mit ForDBC kann der Fortran Programmierer unter Windows mittels herkömmlicher SQL Kommandos aus Tabellen in Datenbanken gezielt lesen und in sie schreiben.

Fast alle gängigen Datenbanken (wie bspw. von Oracle, Microsoft, Sybase, MySQL) und Tabellenkalkulationen (bspw. Excel oder Lotus) bieten den Zugriff über den Open Database Connectivity Standard (ODBC) an, der die Grundlage von ForDBC darstellt.
Unter Windows ist eine ODBC Schnittstelle mit entsprechenden Funktionen bereits implementiert. Allerdings ist sie für Fortran Programmierer nur mit erheblicher Mühe und ausführlichen Kenntnissen der gemischtsprachlichen Programmierung zu verwenden.

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

Die Beschreibung der ODBC API selbst findet bzw. befand 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). 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 einer 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 (mittels Verwendung von SQL SELECT und INSERT Befehlen).
Für Benutzer von Compaq und Intel Visual Fortran steht ein Workspace (.dsw) bzw. eine Solution (.sln) bereit, die alle Beispielprojekte und Quellcodedateien enthält. Im Debugger kann damit der Ablauf der Beispielprogramme leicht nachvollzogen werden. Für Intel Visual Fortran Besitzer (ab v11.1) sind sowohl eine 32-Bit als auch eine 64-Bit Version von ForDBC erhältlich.

Demo-Version

Ein ForDBC Demo steht hier zum Download (ForDBC_325.zip, ca. 15 MB) zur Verfügung. Das Paßwort zum Entpacken ist auf Anfrage erhältlich.
Das Demo enthält die komplette ForDBC Installation für Intel Visual Fortran, die durch Bezug einer Lizenzdatei (wird beim Kauf per email geliefert) freigeschaltet. Die Demolizenz ist hinsichtlich der Laufzeit und der Zugriffsanzahl beschränkt.
Zum schnellen Einstieg sind unten einige Video-Tutorials aufgeführt.


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 noch 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 geführt, der beim Aufruf von SQLFetch intern um 1 erhöht wird. D.h. um alle Ergebnisse des SELECT-Befehls zu erhalten (d.h alle Zeilen der Tabelle), 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 (noch unter Verwendung der etwas älteren ForDBC Version 2.2).

 

Video-Tutorials

Für Intel Visual Fortran Benutzer haben wir diverse Videos erstellt, die einen schnellen Einstieg in die Benutzung von ForDBC ermöglichen.
Die .mp4 Videos können Sie durch Klick mit der rechten Maustaste auf den Videotitel bzw. den Link lokal auf Ihrem Computer speichern (ansonsten Links-Maus-Klick und das Video sollte in Ihrem Browser starten). Unter Windows sind die Videos im Windows Media Player lauffähig

ForDBC Videos
Größe / Dauer
27,9 MB
10:34 min
147 MB
55:40 min
39,5 MB
11:46
16,7 MB
6:10 min
8 MB
2:39 min

Abb.: ForDBC Beispielprogramm (T_ODBCAccessRd) in Visual Studio mit Solution- & Server-Explorer

Support, Schulung, Programmierung 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.

Referenzen - was Kunden sagen:

John Nichols (Texas A&M University): "I very rarely spend hard won research dollars on a Fortran Commercial Product, except for Intel compiler, I bought the NAG library a long time ago, but after trying two other ODBC connection Fortran methods, I can actually say the FORDBC is solid and I am now enjoying it." (siehe auch IVF Forum).

Dr. A. M. (Siemens AG, Energy Sector, Nürnberg), 2007: "Wir haben vor einiger Zeit ForDBC bei Ihnen erworben und haben damit auch sehr gute Erfahrungen. ... Nochmals vielen Dank - wir empfehlen Sie immer gern weiter und Sie können uns auch jederzeit als Referenz angeben."

Mike G, Australia 13.1.2015): "I think ForDBC is a first-rate system – easy to use, intuitive, and very much better than Canaima’s F90SQL. Thanks."

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

Lieferumfang, Systemanforderungen etc.

   
Artikelstammkürzel FORDBC
Lieferumfang als Download bzw. Lieferung per eMail: Software und Online-Dokumentation
Unterstützte
Betriebssystem(e)
PC/Windows
Systemanforderungen

einige MB frei auf der Festplatte, sonst wie Betriebssystem; Fortran 95 Compiler; unterstützt werden derzeit von ForDBC v2: Lahey LF95, Salford FTN95 v4.x,
Und von ForDBC v3.0: Compaq Visual Fortran 6.6, Intel Visual Fortran (v11.1 und höher für die 64-Bit ForDBC Applikationen erforderlich);
SQL Datenbank (z.B. MS/Access, MS/SQL, Oracle, Sybase SQL Anywhere u.v.a.) mit ODBC Treiber

Hersteller QT software GmbH
Aktuelle Version ForDBC v3.25, Stand: 19.8.2014, für Intel Visual Fortran v11.1 und höher
ForDBC v3.0, Stand: 5.9.2011, für Compaq Visual Fortran 6.6
ForDBC v2, Stand 19.11.2005, für Lahey Fortran LF95 v5.6 und höher, und FTN95 (v4.9 und früher)
Lizensierungsvarianten Einzelplatzlizenz
Lizenz- bzw. Laufzeitgebühren keine, bei Weitergabe von Programmen, die auf ForDBC basieren
Patches erhältlich ja
Updates erhältlich ja
Technischer Support QT software GmbH
Testversion

ja

Informationsstand 13. Jan. 2024
zum Anfang
   

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