Ansicht
Dokumentation

CL_SQL_PREPARED_STATEMENT - Ein präpariertes SQL Statement

CL_SQL_PREPARED_STATEMENT - Ein präpariertes SQL Statement

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

Funktionalität

Jede Instanz der Klasse CL_SQL_PREPARED_STATEMENT repräsentiert ein "präpariertes", d.h. von der Datenbank bereits übersetztes, SQL Statement. Präparierte SQL Statements können beliebig oft ausgeführt werden, wobei die Belegung der Eingabewerte für die im Statement-Text enthaltenen Platzhalter von Ausführung zur Ausführung variieren können, ohne daß das SQL Statement von der Datenbank jeweils neu übersetzt werden muß. Insofern hat die mehrfache Ausführung eines präparierten Statements einen gewissen Performance-Vorteil gegenüber der mehrfachen Ausführung desselben Statements durch ein Statement-Objekt der Klasse CL_SQL_STATEMENT.

Ein präpariertes Statement-Objekt kann entweder direkt durch einen CREATE OBJECT Befehl oder ausgehend von einem Verbindungsobjekt der Klasse CL_SQL_CONNECTION über die Methode PREPARE_STATEMENT erzeugt werden. In beiden Fällen ist der Statement-Text als Parameter des Konstruktors bzw. der PREPARE_STATEMENT Methode anzugeben. Der Statement-Text kann Platzhalter ('?') enthalten, an die vor der Ausführung des Statements Eingabewerte gebunden werden müssen. Die Binding eines Eingabewertes an einen Platzhalter erfolgt per Referenz auf ein ABAP Datennobjekt, die durch Aufruf der Methode SET_PARAM übergeben wird. Zur Ausführungszeit wird diese Referenz ausgewertet und als aktueller Eingabewert an die Datenbank übergeben.

Die Ausführung einer präparierten Query bzw. eines DML Kommandos erfolgt durch die Methoden EXECUTE_QUERY bzw. EXECUTE_UPDATE. Diese Methoden sind Redefinitionen der entsprechenden Methoden der Klasse CL_SQL_STATEMENT, von der CL_SQL_PREPARED_STATEMENT abgeleitet ist. Im Unterschied zu den entsprechenden Methoden der Klasse CL_SQL_STATEMENT muß beim Aufruf von EXECUTE_QUERY und EXECUTE_UPDATE im Kontext eines präparierten Statements, also einer Instanz von CL_SQL_PREPARED_STATEMENT, natürlich kein Statement-Text mehr übergeben werden, da dieser bereits bei der Objekterzeugung spezifiziert wurde.

Wenn zwischen den Ausführungen eines präparierten Statements andere Datenobjekte an die Platzhalter im Statement gebunden werden sollen, dann müssen die aktuellen Bindungen zunächst durch die Methode CLEAR_PARAMETERS aufgehoben werden. Danach können mit SET_PARAM Referenzen auf die neuen Eingabevariablen gesetzt werden.

Wird ein präpariertes Statement nicht mehr benötigt, so sollte es unbedingt mit der Methode CLOSE geschlossen werden. Erst durch Aufruf dieser Methode können alle Resourcen, die auf der Datenbank noch an das Statement gebunden sind, wieder freigegeben werden.

Beziehungen

Beispiel

Siehe Beispielprogramm ADBC_DEMO.

Hinweise

Wie bei CL_SQL_STATEMENT sollten mit CL_SQL_PREPARED_STATEMENT keine Anweisungen zur Transaktionskontrolle ausgeführt werden.

Weiterführende Informationen

ADBC - ABAP Database Connectivity






SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 3388 Date: 20240425 Time: 055750     sap01-206 ( 88 ms )