connect()

Die Systemfunktion 'sqlLib.connect()' erstellt zur Ausführungszeit eine benannte Verbindung zu einer Datenbank und aktiviert diese Verbindung.

Jede Ausführungseinheit verfügt über eine einzelne aktuelle Verbindung. Standardmäßig hat die Verbindung den Namen, der für die Datenbank angegeben ist. Diesen Namen können Sie mithilfe der Funktion 'sqlLib.defineDatabaseAlias()' ändern.

Die Funktion 'sqlLib.connect()' überschreibt die SQL-Standardverbindung, die Sie mithilfe des Assistenten für neue Verbindung in der Workbench erstellen. Weitere Informationen zu diesem Assistenten finden Sie unter SQL-Datenbankverbindung erstellen im Handbuch für EGL-Programmierer. Wenn Sie Code von VisualAge Generator oder EGL Version 5 migrieren, siehe connectionService().

Die Funktion 'sqlLib.connect()' gibt keinen Wert zurück, sondern setzt vielmehr die Systemvariablen in 'sqlLib.sqlData'. Siehe sqlLib.sqlData (EGL-Systemvariable).

Syntax

  sqlLib.connect(
    Datenbank STRING in,
    Benutzer-ID STRING in,
    Kennwort STRING in
    [, Option_für_Verbindungstrennung DisconnectKind in
    [, Isolationsstufe IsolationLevelKind in
    [, Commitsteuerung CommitControlKind in]]]] )
Datenbank
Die Datenbankzeichenfolge kann einen der folgenden Werte annehmen:
"RESET"
Stellt den ursprünglichen Status der Datenbankverbindung wieder her. Die genaue Bedeutung des Befehls hängt von Ihrer Umgebung, Ihrer Datenbankmanagement-Software und weiteren Faktoren ab. Weitere Informationen finden Sie unter SQL-Datenbankverbindung erstellen im Handbuch für EGL-Programmierer.
Datenbankname
Der Name Ihrer Datenbank. Der Name hängt von Ihrer Umgebung, Ihrer Datenbankmanagement-Software und weiteren Faktoren ab. Weitere Informationen finden Sie unter SQL-Datenbankverbindung erstellen im Handbuch für EGL-Programmierer.
Wenn Ihr Code als Java™-Programm ausgeführt wird, gilt Folgendes:
  • Sie können den Namen der physischen Datenbank ermitteln, indem Sie die Eigenschaft 'vgj.jdbc.database.Server' suchen, wobei 'Server' der Name des Servers ist, der im Aufruf 'vgLib.connectionService()' angegeben wurde. Ist diese Eigenschaft nicht definiert, wird der im Aufruf 'vgLib.connectionService()' angegebene Servername unverändert verwendet.
  • Das Format des Datenbanknamens ist für J2EE-Verbindungen anders als für Nicht-J2EE-Verbindungen.
    • Wenn Sie das Programm für eine J2EE-Umgebung generiert haben, verwenden Sie den Namen, an den die Datenquelle in der JNDI-Registry gebunden ist, beispielsweise 'jdbc/MyDB'. Diese Situation tritt ein, wenn die Erstellungsdeskriptoroption 'J2EE' auf YES gesetzt wurde.
    • Wenn Sie das Programm für eine Nicht-J2EE-JDBC-Umgebung generiert haben, verwenden Sie eine Verbindungs-URL, beispielsweise 'jdbc:db2:MyDB'. Diese Situation tritt ein, wenn 'J2EE' auf NO gesetzt wurde.
Benutzer-ID
Benutzer-ID, die für den Zugriff auf die Datenbank verwendet wird. Das Argument ist erforderlich, wird jedoch bei der COBOL-Generierung ignoriert. Informationen hierzu finden Sie unter 'Kompatibilität' in diesem Thema.
Kennwort
Kennwort, das für den Zugriff auf die Datenbank verwendet wird. Das Argument ist erforderlich, wird jedoch bei der COBOL-Generierung ignoriert.

Dieses Kennwort wird automatisch verschlüsselt, wenn Sie ein Zeichenfolgeliteral an die Funktion übergeben. Weitere Informationen finden Sie unter Kennwörter verschlüsseln im Handbuch für EGL-Programmierer. Lesen Sie auch die Informationen unter 'Kompatibilität' in diesem Thema.

Option_für_Verbindungstrennung
Dieser Parameter ist nur für die Java-Generierung von Bedeutung. Der Wert ist eine Aufzählung, die eines der folgenden Schlüsselwörter aufweisen muss (verwenden Sie keine Anführungszeichen und keine Variable):
explicit (Standardwert)
Die Verbindung bleibt aktiv, nachdem das Programm 'sysLib.commit()' oder 'sysLib.rollback()' aufgerufen hat. Um Verbindungsressourcen freizugeben, muss ein Programm 'sqlLib.disconnect()' ausgeben.

Wenn Sie 'type1' als Wert für den COMMIT-Bereich verwenden, muss der Parameter 'Option_für_Verbindungstrennung' auf 'explicit' gesetzt werden bzw. diesen Wert standardmäßig annehmen können.

automatic
Eine COMMIT- oder ROLLBACK-Operation beendet eine bestehende Verbindung.
conditional
Eine COMMIT- oder ROLLBACK-Operation beendet eine bestehende Verbindung automatisch, sofern kein Cursor mit aktivierter Option 'hold' geöffnet ist. Informationen zur Option 'hold' finden Sie unter Überlegungen zu 'open' mit SQL.
Isolationsstufe
Gibt die Stufe der Unabhängigkeit zwischen Datenbanktransaktionen an. Dieser Parameter ist nur für die Java-Generierung von Bedeutung. Der Wert für diese Eigenschaft stammt von der Aufzählung 'IsolationLevelKind':
default
Verwendet die Standardisolationsstufe des JDBC-Treibers, sofern die Ausführung nicht im VisualAge Generator-Kompatibilitätsmodus erfolgt. Ist dies der Fall, wird der Wert von 'vgVar.sqlIsolationLevel' verwendet (siehe sqlIsolationLevel). Normalerweise verwenden die Anbieter von Treibern die Stufe 'repeatableRead' für wiederholbares Lesen, doch sollten Sie dies sicherheitshalber in Ihrer Dokumentation überprüfen. Dieses Verhalten ist mit dem Verhalten identisch, das auftritt, wenn Sie diesen Parameter nicht angeben.
readUncommitted
Verwendet die toleranteste Isolationsstufe. Dies bedeutet, dass das Programm zwar schneller ist, möglicherweise jedoch nicht den tatsächlichen Status der Datenbank erkennt.
readCommitted
Verwendet eine weniger tolerante Isolationsstufe.
repeatableRead
Verwendet eine strengere Isolationsstufe.
serializableTransaction
Verwendet die strengste Isolationsstufe. Dies bedeutet, dass das Programm zwar langsamer ist, dafür jedoch die Änderungen erkennt, die von anderen, gleichzeitig ausgeführten Programmen vorgenommen werden.

Weitere Informationen finden Sie in der JDBC-Dokumentation von Oracle.

Commitsteuerung
Gibt an, ob nach jeder Änderung an der Datenbank eine Commitoperation ausgeführt wird. Wird bei von EGL generiertem COBOL-Code ignoriert.
Die folgenden Werte sind gültig:
  • noAutoCommit (Standardwert). Das Commit wird nicht automatisch ausgeführt, wodurch die Ausführung des Programms normalerweise schneller ist. Informationen zu den Regeln für Commit und Rollback in diesem Fall finden Sie unter Logische Arbeitseinheit (LUW).
  • autoCommit. Aktualisierungen werden unverzüglich wirksam.

Sie können temporär von 'autoCommit' auf 'noAutoCommit' umschalten. Informationen hierzu finden Sie unter beginDatabaseTransaction().

Beispiel

Es folgt ein Beispiel für die Funktion 'sqlLib.connect()':

  sqlLib.connect(myDatabase, myUserid, myPassword);

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität für 'connect()'
Plattform Problem
COBOL-Generierung Alle Parameter der Funktion 'sqlLib.connect()' mit Ausnahme von 'Datenbank' werden ignoriert.
Java-Generierung Der Tomcat-J2EE-Server ignoriert die Benutzer-ID und das Kennwort aus der Funktion 'sqlLib.connect()' und verwendet stattdessen die Werte aus der eigenen Serverkonfiguration.
J2EE Um standardmäßig die Benutzer-ID und das Kennwort zu verwenden, die der (für den JNDI-Namen definierten) Datenquelle zugeordnet sind, verwenden Sie Leerzeichen oder die leere Zeichenfolge ("") für 'Benutzer-ID' und 'Kennwort'.

Feedback