8.1 DSN oder Connection-String in COBOL verwenden
Bevor man mit einer Datenbank arbeiten kann, muß man sich einloggen. Dazu benötigt man den Namen des Computers(SERVERNAME) auf dem die Datenbank läuft, ein Passwort, einen Usernamen und entweder einen sog. Connection-String oder einen DSN (Data Source Name).
8.1.1 Arbeiten mit DSN
Arbeitet man mit DSN, so wird in Windows die Verbindung zur Datenbank seperat aufgebaut:
Start -> Systemsteuerung -> Verwaltung -> Datenquelle (ODBC)
Dort wird der Name des Dienstes (DSN), sowie der zugehöriger Treiber festgelegt.
Für Acc-Cobol müssen bei Verwendung von DSN die Anmeldedaten in der Umgebungsvariablen CDBNAME in folgendem Format hinterlegt werden:
| | | | | |
Format:
CDBNAME=SERVERNAME:DSN:USERNAME:PASSWORT
| |
| | | |
Angenommen die Datenbank befindet sich auf dem Computer dbserver, der User ist scott und das Passwort tiger und die DSN wurde als mydb festgelegt, dann muss
| | | | | |
Format:
set CDBNAME=dbserver:mydb:scott:tiger
| |
| | | |
vor dem Aufruf des Cobolprogramms gesetzt werden.
Alternativ hierzu kann auch im Programm der Call
| | | | | |
Format:
call setenv using 'cdbname' 'dbserver:mydb:scott:tiger'.
| |
| | | |
gesetzt werden.
Bei dem ersten Verwenden eines Datenbankbefehls wird der Login automatisch durchgeführt.
Dieser Parameter (CDBNAME) kann auch in der Datei db.def in der Installationsdirectory
Programme\Acc\Acc-Cobol\cobol
hinterlegt werden.
8.1.2 Connection-String
Die zweite Möglichkeit eine Verbindung zur Datenbank aufzubauen geschieht mit dem Connection-String.
Der Connection-String legt alle Parameter fest, die zum Verbindungsaufbau zur Datenbank notwendig sind.
Dieser Connection-String ist für jeden Treiber unterschiedlich, bietet aber eine größere Flexibilität als nur mit DSN, da die Parameter dort für alle Programme festgelegt werden.
Als Beispiel ein Verbindungsaufbau zu eine MySql-Server:
move space to cstring.
string 'Driver={MySQL ODBC 5.1 Driver};'
'Server=dbserver;'
'Database=test;'
'User=scott;'
'Password=tiger;'
'Option=3;'
into cstring.
Dieser Connection-String wird dann für die Öffnung benötigt:
| | | | | |
Format:
call dbconnect using dbstatus cstring.
| |
| | | |
wobei dbstatus ein numerisches Feld ist und cstring den Connection-String beinhalten muß.
Sollte die Verbindung nicht gelingen, wird in dbstatus ein entsprechender Fehlerstatus abgestellt.
8.1.3 Fehlerprotokollierung
Mit der Umgebungsvariablen CDBLOG kann der Name einer Tabelle hinterlegt werden, in der eventuelle Fehler abgestellt werden.
Diese Tabelle kann mit crerrtab angelegt werden.
Für fehlerhafte Transaktionen wird hier die Partition, der Programmname, Datum, Uhrzeit, User,Tabelle, Statement, sowie Fehlermeldung des Datenbanktreibers hinterlegt.
8.1.4 Parameterdatei
Die Parameter können auch in der Datei db.def in der Installationsdirectory
Programme\Acc\Acc-Cobol\cobol
mit folgendem Format hinterlegt werden:
| | | | | |
Format:
Inhalt von db.def:
CDBNAME = SERVERNAME:DSN:USERNAME:PASSWORT
| |
| | | |
Zurück zu Acc-Cobol: Intrinsic Functions - Summenfunktionen
Hoch zu Datenbank und Cobol
Weiter zu SQL-Statement absetzen
|