Ansicht
Dokumentation

ABAPEXEC_CONNECTION - EXEC CONNECTION

ABAPEXEC_CONNECTION - EXEC CONNECTION

Fill RESBD Structure from EBP Component Structure   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- CONNECT

Um Native-SQL-Anweisungen verwenden zu können, muss eine Verbindung zu der Datenbank definiert werden. Beim Start eines AS ABAP wird eine Standardverbindung von der Datenbankschnittstelle zur Standarddatenbank des AS ABAP geöffnet und diese Verbindung beim Start eines ABAP-Programms als aktuelle Verbindung für eingebettete Native-SQL-Anweisungen und als Standardverbindung für -Anweisungen festgelegt. Mit folgenden SAP-spezifischen Native-SQL-Anweisungen können zusätzliche Datenbankverbindungen geöffnet werden, auf die dann im statischen Native SQL zugegriffen werden kann.

Die möglichen zusätzlichen Verbindungen eines AS ABAP zu Datenbanksystemen sind in der Datenbanktabelle DBCON definierte Sekundärverbindungen oder Serviceverbindungen, deren Name mit R/3* beginnt.

Hinweis

Für ausführliche Informationen zu Datenbankverbindungen, siehe Datenbankverbindungen.

Verbindung öffnen

EXEC SQL.
  CONNECT TO conn $[AS name$]
ENDEXEC.

Wirkung

Diese statische Native-SQL-Anweisung fordert eine Datenbankverbindung des Namens conn an. Die Verbindung wird entweder geöffnet oder wieder verwendet, falls bereits für den aktuellen Workprozess im Zustand inaktiv vorhanden. Nach erfolgreicher Ausführung von CONNECT TO ist die angegebene Verbindung die aktuelle Verbindung der internen Sitzung, d.h., alle nachfolgenden statischen Native-SQL-Anweisungen arbeiten solange mit dieser Verbindung, bis mit einer erneuten Anweisung CONNECT TO oder mit SET CONNECTION eine andere Verbindung als aktuelle Verbindung gesetzt wird.

Für conn kann ein Literal oder eine Hostvariable angegeben werden, die einen der folgenden Werte enthält:

Die Groß-/Kleinschreibung ist in beiden Fällen relevant. Die Angabe einer Sekundärverbindung, die nicht in der Datenbanktabelle DBCON vorhanden ist, führt zu einer behandelbaren Ausnahme der Klasse CX_SY_NATIVE_SQL_ERROR. Wenn eine Sekundärdatenbank nicht erreichbar ist, wird sy-subrc auf den Wert 4 gesetzt.

Mit dem Zusatz AS kann der Verbindung ein Name name gegeben werden. Für name kann ein Literal oder eine zeichenartige Hostvariable angegeben werden, deren Inhalt als Name verwendet wird. Eine Verbindung mit einem Namen name ist eine andere Verbindung als eine Verbindung, die ohne den Zusatz AS angefordert wurde. Dies erlaubt es, innerhalb einer internen Sitzung parallele Verbindungen mit eigenen Datenbank-LUWs für die gleiche Sekundär- oder Serviceverbindung zu öffnen. In einer internen Sitzung darf nur genau eine aktive Datenbankverbindung mit einem Namen name bezeichnet sein. Ein Versuch, eine weitere Verbindung mit dem gleichen Namen zu aktivieren führt zu einem Laufzeitfehler. Eine Verbindung mit einem Namen name kann nur über diesen Namen in der Anweisung SET CONNECTION angegeben werden.

Hinweise

  • Ein mit AS vergebener Name kann auch in hinter dem Zusatz CONNECTION und in den Anweisungen COMMIT CONNECTION und ROLLBACK CONNECTION verwendet werden, wenn er keine Kleinbuchstaben enthält.

Verbindung auswählen

EXEC SQL.
  SET CONNECTION ${conn$|DEFAULT$}
ENDEXEC.

Wirkung

Diese statische Native-SQL-Anweisung setzt die aktuelle Verbindung für alle nachfolgenden statischen Native-SQL-Anweisungen. Für conn kann ein Literal oder eine zeichenartige Hostvariable angegeben werden, die den Namen einer in der aktuellen Sitzung aktivierten Verbindung enthält:

  • Mit DEFALUT in Großbuchstaben oder auch durch die direkt Angabe DEFAULT kann die Standardverbindung angegeben werden.
  • Eine mit CONNECT TO ohne die Angabe eines Namens hinter AS aktivierte Sekundär- oder Serviceverbindung kann unter ihrem Namen conn angegeben werden.
  • Eine mit CONNECT TO mit Angabe eines Namens hinter AS aktivierte Sekundär- oder Serviceverbindung kann unter diesem Namen name angegeben werden.

Die Groß-/Kleinschreibung ist in allen Fällen relevant. Bei Angabe einer unbekannten Verbindung wird die aktuelle Verbindung nicht geändert und sy-subrc auf den Wert 4 gesetzt.

Hinweise

  • Das Umschalten einer aktuellen Verbindung auf eine andere aktuelle Verbindung schließt keine Datenbank-LUW und öffnet keine neue.
  • Das Umschalten der aktuellen Verbindung wirkt nur auf statisches Native SQL hinter EXEC SQL. und anderes Native SQL werden nicht beeinflusst.
  • Das Umschalten der aktuellen Verbindung ist unabhängig davon, ob die beteiligten Verbindungen aktiv oder nach Beendigung ihrer Datenbank-LUW inaktiv sind.

Verbindung feststellen

EXEC SQL.
  GET CONNECTION :conn
ENDEXEC.

Wirkung

Diese statische Native-SQL-Anweisung weist conn den Namen der aktuellen Verbindung zu. Für conn muss eine zeichenartige Hostvariable angegeben werden. Wenn die aktuelle Verbindung mit der Anweisung CONNECT TO aktiviert und ihr dabei mit AS ein Name gegeben wurde, wird dieser zugewiesen. Wurde die Verbindung ohne Namensvergabe aktiviert, wird der Name der Sekundär- bzw. Serviceverbindung zugewiesen. Wenn die aktuelle Verbindung die Standardverbindung ist, wird der Wert DEFAULT zugewiesen.

Hinweis

Die aktuelle Verbindung kann aktiv oder nach Beendigung ihrer Datenbank-LUW auch inaktiv sein.

Verbindung schließen

EXEC SQL.
  DISCONNECT conn
ENDEXEC.

Wirkung

Diese statische Native-SQL-Anweisung schließt die Verbindung conn für den aktuellen Workprozess, wobei alle Datenbankänderungen, für die noch kein Datenbank-Commit erfolgte, verworfen werden. Für conn kann ein Literal oder eine zeichenartige Hostvariable angegeben werden, die den Name einer in der internen Sitzung aktivierten Sekundär- oder Serviceverbindung enthält:

  • Eine mit CONNECT TO ohne die Angabe eines Namens hinter AS aktivierte Sekundär- oder Serviceverbindung kann unter ihrem Namen conn angegeben werden.
  • Eine mit CONNECT TO mit Angabe eines Namens hinter AS aktivierte Sekundär- oder Serviceverbindung kann unter diesem Namen name angegeben werden.

Alle anderen Angaben, vor allem der Wert DEFAULT, führen zu einem Laufzeitfehler. Ist die geschlossene Sekundär- oder Serviceverbindung die gerade aktuelle Verbindung, wird implizit die Standardverbindung als neue aktuelle Verbindung gesetzt. Die Groß-/Kleinschreibung ist in allen Fällen relevant.

Hinweise

  • Die geschlossene Verbindung kann zuvor aktiv oder nach Beendigung ihrer Datenbank-LUW inaktiv sein.
  • In aller Regel sollten Datenbankverbindungen nicht explizit sondern nur implizit durch das ABAP-Laufzeit-Framework geschlossen werden, da das Wiederherstellen einer Verbindung nicht unerhebliche Ressourcen verbraucht.

Beispiel

Beispiel

Öffnen einer Verbindung zu einer SAP-HANA-Datenbank und Einlesen aller Einträge einer Spalte der dortigen Datenbanktabelle SCARR.






rdisp/max_wprun_time - Maximum work process run time   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10803 Date: 20240418 Time: 222349     sap01-206 ( 164 ms )