Ansicht
Dokumentation

CL_SQL_STATEMENT - SQL Statement

CL_SQL_STATEMENT - SQL Statement

General Material Data   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Die Klasse CL_SQL_STATEMENT enthält Methoden zur Ausführung von SQL Statements. Wird eine Instanz dieser Klasse - ein Statement-Objekt - durch einen einfachen CREATE OBJECT Befehl erzeugt, so werden die über dieses Objekt durch Aufruf der entsprechenden Methoden auszuführenden SQL Statements auf der Default-Verbindung des SAP Systems ausgeführt. Eine Statement-Objekt kann aber auch durch Aufruf der Methode CREATE_STATEMENT eines Verbindungsobjekts der Klasse CL_SQL_STATEMENT erzeugt werden. In diesem Fall laufen dann aber alle SQL Statements, die über dieses Statement-Objekt ausgeführt werden, im Kontext der Datenbankverbindung ab, die durch das erzeugende Verbindungsobjekt repräsentiert ist.

Zur Ausführung von DDL-Kommandos (CREATE, DROP, ALTER, ...) ist die Methode EXECUTE_DDL zu benutzen. DML Kommandos (INSERT, UPDATE und DELETE) werden mit EXECUTE_UPDATE ausgeführt und für Queries (SELECT Statements) steht die Methode EXECUTE_QUERY zur Verfügung. Datenbankprozeduren können über die Methode EXECUTE_PROCEDURE in einer für alle unterstützten DB-Systeme einheitlichen Weise gerufen werden.

Mit Ausnahme von DDL-Kommandos können alle SQL-Statements Platzhalter für Eingabevariable enthalten, wobei '?' im Statementtext als Platzhaltersymbol zu verwenden ist. Vor der Ausführung eines Statements durch die o.g. Methoden müssen jedoch all im Statement enthaltenen Platzhalter an entsprechende Datenobjekte gebunden sein. Diese Bindung geschieht durch

  • die Methode SET_PARAM, die für jeden Platzhalter genau einmal aufzurufen ist.
  • die Methode SET_PARAM_STRUCT, welche die Komponenten einer Struktur der Reihe nach an alle Platzhalter einer Anweisung bindet
  • die Methode SET_PARAM_TABLE, welche die Komponenten einer internen Tabelle der Reihe nach an alle Platzhalter einer Anweisung bindet. Die Verwendung der Methode SET_PARAM_TABLE is nur in Kombination mit DML Anweisungen wie INSERT, UPDATE oder DELETE für Mengenzugriffe sinnvoll.

Hierbei wird eine Referenz auf das Datenobjekt (z.B. eine ABAP-Variable) übergeben, dessen aktueller Wert dann bei der Ausführung des SQL Statements verwendet wird.

Beziehungen

Beispiel

Siehe Beispielprogramm ADBC_DEMO.

Hinweise

Mit den Methoden der Klasse CL_SQL_STATEMENT sollten keine Anweisungen zur Transaktionskontrolle (COMMIT, ROLLBACK) ausgeführt werden, da die Datenbankschnittstelle diese dann nicht erkennt und eventuell bei einem Transaktionsende notwendige Aktionen nicht durchführen kann. Für die Transaktionskontrolle dürfen ausschließlich die entsprechenden Methoden der Klasse CL_SQL_CONNECTION verwendet werden.

Das Platzhalterzeichen ? wird nur innerhalb von Literalen nicht als Platzhalterzeichen interpretiert. Das bedeutet, dass dieses Zeichen u.a. weder in Tabellen- noch in Feldnamen verwendet werden darf.

Weiterführende Informationen

ADBC - ABAP Database Connectivity






ABAP Short Reference   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 3459 Date: 20240329 Time: 121204     sap01-206 ( 82 ms )