Positionierte Aktualisierungen und Löschvorgänge ausführen

Sie können positionierte Aktualisierungen und Löschvorgänge ausführen, wenn Ihre Anwendung mit Annotationen versehene Methoden verwendet und für eine DB2-Datenbank ausgeführt wird.

Vorbereitende Schritte

Stellen Sie sicher, dass Ihre Anwendung die folgenden Anforderungen erfüllt:
  • Sie können positionierte Aktualisierungen und Löschvorgänge nur für DB2-Datenquellen ausführen.
  • Die mit Annotationen versehene Methode, die die Anweisung SELECT ausführt, die den Cursor deklariert, muss ein ResultSet- oder Iteratorobjekt zurückgeben.
  • Die Deklaration der Methode, die die Anweisung SELECT ausführt, und die Deklaration der Methode, die die Anweisung UPDATE oder DELETE ausführt, muss sich in einer einzelnen Schnittstelle befinden.
  • Die Namen, die Sie für Cursor verwenden, dürfen nicht mit DB2JCCCURSOR oder DB_PDQ anfangen.
  • Sie dürfen keine zwei Cursor zur selben Zeit über eine einzelne Verbindung öffnen, wenn diese Cursor denselben Namen haben.
  • pureQuery löst eine Ausnahmebedingung aus, wenn eine Anwendung die folgenden Schritte ausführt:
    1. Sie führt eine Anweisung SELECT aus, die einen Cursor für eine positionierte Aktualisierung oder einen positionierten Löschvorgang deklariert.
    2. Sie führt dieselbe Anweisung SELECT erneut über dieselbe Verbindung aus, für die die letzte Anweisung zuvor ausgeführt wurde.
    3. Sie führt eine Anweisung UPDATE oder DELETE aus, die einen Cursor verwendet, den eine der beiden SELECT-Anweisungen deklariert hat.
    pureQuery kann nicht ermitteln, auf welchen der beiden Cursor die Anweisung UPDATE oder DELETE verweist.

Informationen zu diesem Vorgang

Syntaxdiagramme für die mit Annotationen versehene Methoden finden Sie im Abschnitt "Syntax für positionierte Aktualisierungen und Löschvorgänge" in Syntax von mit Annotationen versehenen Methoden, die SQL für Datenbanken ausführen.

Vorgehensweise

Gehen Sie wie folgt vor, um den Code für die Ausführung einer positionierten Aktualisierung oder eines positionierten Löschvorgangs zu schreiben:

  1. Wenn Sie die mit Annotationen versehene Methode deklarieren, um die Anweisung SELECT auszuführen, die den Cursor positioniert, geben den Namen des Cursors über das Attribut cursorName der Annotation @Cursor an. Diese Methode muss ein java.sql.ResultSet- oder Iterator-Objekt zurückgeben.
    Achtung: Wenn die Anweisung SELECT eine Klausel FOR UPDATE enthält, Sie das Attribut für gemeinsamen Zugriff der Annotation @Cursor jedoch auf den Standardwert java.sql.ResultSet.CONCUR_READ_ONLY setzen, hat die Klausel FOR UPDATE Vorrang vor dem Attribut. pureQuery öffnet den Cursor als Aktualisierungscursor.
  2. Wenn Sie die mit Annotationen versehene Methode deklarieren, um eine Anweisung UPDATE oder DELETE auszuführen, die den Cursor verwendet, geben Sie den Namen des Cursors über das Attribut positionedCursorName in der Annotation @Update an.

Beispiel

Ein Beispiel, in dem eine Anweisung SELECT und eine Anweisung UPDATE verwendet werden, finden Sie im Abschnitt "Syntax für positionierte Aktualisierungen und Löschvorgänge" in Syntax von mit Annotationen versehenen Methoden, die SQL für Datenbanken ausführen.

Feedback