ForDBC

121,38 423,62 

Artikelnummer: n. v. Kategorie: Schlagwörter: , , , , ,

Beschreibung

Zugriff auf Datenbanken und Tabellen in Fortran unter Windows

Mit ForDBC kann der Fortran Programmierer unter Windows mittels SQL Kommandos Tabellen in Datenbanken lesen und in sie schreiben. Diese SQL Kommandos können aus einem Programm (.exe) mithilfe von sog. ODBC Funktionen ausgeführt werden.

Fast alle gängigen Datenbanken (bspw. von Oracle, Microsoft, Sybase, MySQL) und Tabellenkalkulationen (bspw. Excel oder Lotus) bieten den Zugriff via ODBC (= Open Database Connectivity Standard) an, auf dem auch ForDBC basiert.

ForDBC stellt ein Fortran spezifisches INTERFACE zu den ODBC Funktionen (ODBC API, 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 und Beispielprogramme, die die Nutzung der grundlegenden Funktionen zeigen (Beispiel s.u.).

Die Beschreibung der ODBC API selbst findet sich u.a. beim Intel Visual Fortran in der Online-Hilfe. Ansonsten ist sie im Microsoft Windows Platform Software Development Kit (SDK) zu finden, das mit vielen Microsoft Entwicklungswerkzeugen mitgeliefert wird (u.a. 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 (PDF) ausgestattet, das 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 (mittels Verwendung von SQL SELECT und INSERT Befehlen).
Für Benutzer von 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.

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

Demo-Version

Ein ForDBC Demo steht hier zum Download (ForDBC_325.zip, ca. 9 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 freigeschaltet wird (sie wird beim Kauf per email geliefert). Die Demolizenz ist hinsichtlich der Laufzeit und der Zugriffsanzahl beschränkt.
Zum schnellen Einstieg gibt es einige Video-Tutorials die Sie unten finden.

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 möglich, die viaForDBC bereitgestellt wird:

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

Damit wird der SELECT-Befehl ausgeführt, aber um das Ergebnis der Abfrage, d.h. den Tabelleninhalt in einem Fortran-Programm zu erhalten, sind noch die Werte der Tabellenzeilen in zuzuordnende 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 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 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
ForDBC Installation
Das Video zeigt den Download von ForDBC, die anschließende Installation und erklärt dann den Aufbau und die wesentlichen Elemente. Es folgt der Start der MS/Visual Studio Solution in VS2013 inkl. automatischer Konvertierung der VS2008 Projekte.

27,9 MB

10:34 min

Einführung in die Benutzung von ForDBC
Anhand der Beispielprogramme wird der Aufbau der Intel Visual Fortran Projekte sowie deren wesentlichen Compiler- und Linker-Einstellungen (properties) gezeigt. Nach dem Erstellen (Build) eines ForDBC Beispielprogramms wird der Ablauf des Programms im Debugger demonstriert und dabei die wesentlichen Elemente eines ODBC Programms erklärt.
147 MB

55:40 min

Anlegen einer ODBC Datenquelle (DSN)
Einige der ForDBC Beispiele verwenden ODBC Datenquellennamen (data source names). Das Video zeigt wie man einen DSN anlegt.
39,5 MB

11:46

Installation of Microsoft ODBC Drivers
Für diejenigen, die kein MS/Excel oder MS/Access besitzen, die ForDBC Beispiele aber dennoch ausprobieren oder in Fortran auf Exceldateien (.xls, .xlsx) bzw. Accessdateien (.mdb, .accdb) zugreifen wollen, wird gezeigt wie die kostenlosen Microsoft Data Access Components (MDAC für 32-Bit) und die MS/Access Runtime Distributables (64-Bit) geladen und installiert werden.
16,7 MB

6:10 min

SQL Error [ODBC Microsoft Access Driver]: Unable to open registry key …
Wenn beim Verbinden (connect) mit einer MS/Accessdatenbank ein Zugriffsfehler aufgrund unzureichender Berechtigungen (ACE) auftritt, wird hier gezeigt, wie man die ODBC Zugriffsberechtigungen im Windows Betriebssystem ändert.
8 MB

2:39 min

Unterstützte Fortran Compiler

ForDBC ist derzeit nur noch für den Intel Visual Fortran unter Windows erhältlich, und das sowohl für 32- als auch 64-Bit (Intel Visual Fortran ist Bestandteil der Windows Version des oneAPI HPC Toolkit). Für weitere Fortran Compiler wären Implementation möglich, können aber aufgrund der geringen Nachfrage nicht gewartet werden.

Lizensierung

Es werden nur  Einzelplatzlizenzen angeboten. Für damit erstellte Programme (.exe) werden keine Laufzeitgebühren gefordert.

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 Intel Fortran 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.“

Zusätzliche Informationen

Variante

for 32-Bit, for 64-Bit, for 32- & 64-Bit, Update