sysVar.sqlData

'sysVar.sqlData' ist ein strukturierter Datensatz, der dieselben Systemvariablen enthält, die im strukturierten Datensatz 'sqlLib.sqlData' definiert sind. Die Variablen in beiden Datensätzen werden aktualisiert, nachdem Ihr Programm auf eine relationale Datenbank zugreift. Zwischen den beiden Datensätzen gibt es folgende Unterschiede:
  • Der Geltungsbereich von 'sysVar.sqlData' ist auf einem Hauptabschnitt mit ausführbarem Code (ein Programm, eine Bibliothek, einen Service oder einen Handler) begrenzt. Beispiel: Wenn 'Programm B' von 'Programm A' aufgerufen wird und beide Programme auf eine relationale Datenbank zugreifen, verfügt jedes Programm über eine eigene Kopie von 'sysVar.sqlData'. Die in 'Programm B' gesetzten Werte sind nach Rückkehr zu 'Programm A' nicht mehr verfügbar.
  • Der Geltungsbereich von 'sqlLib.sqlData' ist in allen Programmen in der Ausführungseinheit global. Beispiel: Wenn 'Programm B' von 'Programm A' aufgerufen wird und beide Programme auf eine relationale Datenbank zugreifen, sind die Werte, die beim letzten Zugriff auf die relationale Datenbank in 'Programm B' gesetzt wurden, unverzüglich nach der Rückkehr zu 'Programm A' dort verfügbar, bis der nächste Zugriff auf die relationale Datenbank erfolgt.

In beiden Fällen wird der Wert der Variablen für eine Anweisung 'converse' im Segmentmodus nicht übergreifend gespeichert.

Informationen zur Datensatzstruktur finden Sie unter sqlLib.sqlData (EGL-Systemvariable).

EGL verwaltet 'sysVar.sqlData' zwecks Kompatibilität mit VisualAge Generator und früheren Releases von EGL. Darüber hinaus können Sie 'sysVar.sqlData' verwenden, wenn Sie den Geltungsbereich der SQL-Informationen auf ein einzelnes Programm begrenzen wollen oder wenn Sie die COBOL-Generierung verwenden.

EGL verwaltet 'sqlLib.sqlData' zwecks Kompatibilität mit I4GL. Außerdem gilt: Wenn Sie die Java™-Generierung verwenden und mithilfe einer Bibliotheksfunktion die SQL-Ein-/Ausgabe vornehmen, können Sie 'sqlLib.sqlData' verwenden, um die SQL-Ergebnisse der Bibliotheksfunktion nach der Rückkehr zur aufrufenden Funktion zu prüfen.

Wert übergreifend für Anweisung 'converse' im Segmentmodus speichern?

NO

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität für 'sqlData'
Plattform Problem
Java-Generierung Java setzt lediglich 'sqlcode', 'sqlstate', 'sqlerrd[2]', 'sqlerrd[3]' und 'sqlwarn[2]'. In Java wird die Datenstruktur des SQL-Kommunikationsbereichs (SQLCA) nicht bei jeder E/A-Operation an die Datenbank bzw. aus der Datenbank übergeben, sodass EGL alle Felder setzt, die möglich sind. Der Benutzer kann zwar weitere Felder ändern, doch werden diese von EGL-Java nicht verwendet.