ABAPEXEC_CONNECTION - EXEC CONNECTION

BAL_S_LOG - Application Log: Log header data   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

EXEC SQL - CONNECT

Um mit Native-SQL-Anweisungenarbeiten zu können, muss eine Verbindung zu einem Datenbanksystem festgelegt sein. Beim Start einesASABAP wird eine Standardverbindung von der Datenbankschnittstelle zur zentralen Datenbank des ASABAP geöffnet und diese Verbindung beim Start eines ABAP-Programms als aktuelle Verbindung für Native-SQL-Anweisungen und als Standardverbindung fürOpen-SQL-Anweisungenfestgelegt. Mit folgenden SAP-spezifischen Native-SQL-Anweisungen können zusätzliche Verbindungen zu anderen Datenbanksystemen geöffnet werden, auf die dann in Native SQL zugegriffen werden kann.

Die möglichen Verbindungen eines AS ABAP zu Datenbanksystemen sind in der DatenbanktabelleDBCON abgelegt. Das Anlegen und Ändern von Einträgen in der Datenbanktabelle DBCON erfolgt über das WerkzeugDBA Cockpit.

Hinweis

Beim Wechsel des Workprozesses mit daraus resultierendemimpliziten Datenbank-Commit wird dieser auf allen offenen Verbindungen ausgeführt.

Verbindung öffnen

Syntax

EXEC SQL.
  CONNECT TO dbs [AS con]
ENDEXEC.

Wirkung

Diese Native-SQL-Anweisung öffnet eine Verbindung zum Datenbanksystem dbs und macht diesezur aktuellen Verbindung, d.h., alle nachfolgenden Native-SQL-Anweisungen arbeiten mit dem in dbsgenannten Datenbanksystem. Wenn bereits eine Verbindung zum angegebenen Datenbanksystem existiert, wird diese verwendet, andernfalls wird eine neue Verbindung aufgebaut.

Für dbs kann ein Literal oder eine Hostvariable angegeben werden, die einen Namen aus der Spalte CON_NAME der DatenbanktabelleDBCON enthält. Das dort bezeichnete Datenbanksystemmuss von SAP unterstützt werden und die technischen Daten der Verbindung müssen gepflegtsein. Die Spalte DBMS der Datenbanktabelle DBCON enthält ein Kürzel für den Typ des Datenbanksystems.

Mit dem Zusatz AS kann der Verbindung ein Name con gegeben werden. Für conkann ein Literal oder eine zeichenartige Hostvariable angegeben werden, deren Inhalt als Name verwendetwird. Die Verbindung ist danach über diesen Namen in der Native-SQL-Anweisung SET CONNECTION wählbar.

Verbindung auswählen

Syntax

EXEC SQL.
  SET CONNECTION {con|DEFAULT}
ENDEXEC.

Wirkung

Diese Native-SQL-Anweisung setzt die aktuelle Verbindung für alle nachfolgenden Native-SQL-Anweisungen.Für con kann ein Literal oder eine zeichenartige Hostvariable angegeben werden, die denNamen einer geöffneten Verbindung enthalten muss. Als Name der Verbindung kann entweder das inder Native-SQL-Anweisung CONNECT TO angegebene Datenbanksystem aus der Datenbanktabelle DBCONoder der dort mit dem Zusatz AS vergebene Name angegeben werden. Mit DEFAULT wird die Standardverbindung zum zentralen Datenbanksystem des aktuellen AS ABAP gesetzt.

Verbindung feststellen

Syntax

EXEC SQL.
  GET CONNECTION :con
ENDEXEC.

Wirkung

Diese Native-SQL-Anweisung weist con den Namen der aktuellen Verbindung zu. Für conmuss eine zeichenartige Hostvariable angegeben werden. Wenn die Verbindung mit der Native-SQL-AnweisungCONNECT TO aufgebaut und ihr dabei mit AS ein Name gegeben wurde, wird dieser zugewiesen.Wurde die Verbindung ohne Namensvergabe aufgebaut, wird die Bezeichnung des Datenbanksystems aus der Datenbanktabelle DBCON verwendet. Wenn die aktuelle Verbindung die Standardverbindung zur zentralen Datenbank desAS ABAP ist, wird con der Wert "DEFAULT" zugewiesen.

Verbindung schließen

Syntax

EXEC SQL.
  DISCONNECT con
ENDEXEC.

Wirkung

Diese Native-SQL-Anweisung schließt die Verbindung con. Wenn con nicht die aktuelleVerbindung ist, wird diese nicht beeinflusst. Ist con die aktuelle Verbindung, wird gleichzeitigdie Standardverbindung zur zentralen Datenbank des AS ABAP als aktuelle Verbindung für alle folgenden Native-SQL-Anweisungen gesetzt.

Für con kann ein Literal oder eine zeichenartige Hostvariable angegeben werden, die denNamen einer geöffneten Verbindung enthalten muss. Wenn beim Öffnen der Verbindung mitder Native-SQL-Anweisung CONNECT TO mit dem Zusatz AS ein Name vergeben wurde, muss dieserverwendet werden, ansonsten muss die Bezeichnung des Datenbanksystems aus der Datenbanktabelle DBCON verwendet werden. Die Standardverbindung "DEFAULT" kann nicht geschlossen werden.

Beispiel

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

PARAMETERS dbs TYPE dbcon-con_name.

DATA carrid_wa TYPE scarr-carrid.

DATA dbtype TYPE dbcon_dbms.

SELECT SINGLE dbms
       FROM dbcon
       INTO dbtype
       WHERE con_name = dbs.

IF dbtype = 'ORA'.
  TRY.
      EXEC SQL.
        CONNECT TO :dbs
      ENDEXEC.
      IF sy-subrc <> 0.
        RAISE EXCEPTION TYPE cx_sy_native_sql_error.
      ENDIF.
      EXEC SQL.
        OPEN dbcur FOR
          SELECT carrid
                 FROM scarr
                 WHERE mandt = :sy-mandt
      ENDEXEC.
      DO.
        EXEC SQL.
          FETCH NEXT dbcur INTO :carrid_wa
        ENDEXEC.
        IF sy-subrc <> 0.
          EXIT.
        ELSE.
          WRITE / carrid_wa.
        ENDIF.
      ENDDO.
      EXEC SQL.
        CLOSE dbcur
      ENDEXEC.
      EXEC SQL.
        DISCONNECT :dbs
      ENDEXEC.
    CATCH cx_sy_native_sql_error.
      MESSAGE `Error in Native SQL.` TYPE 'I'.
  ENDTRY.
ENDIF.


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


Length: 8814 Date: 20120526 Time: 195904     triton ( 269 ms )