Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » Einführung in die Programmierung mit SQL Anywhere » SQL in Anwendungen verwenden » Mit Cursor arbeiten

 

Cursor verwenden

Die Verwendung eines Cursors in Embedded SQL unterscheidet sich von der Verwendung eines Cursors in anderen Schnittstellen.

♦  So verwenden Sie einen Cursor (ADO.NET, ODBC, JDBC und Open Client)
  1. Bereiten Sie eine Anweisung vor und führen Sie sie aus:

    Führen Sie eine Anweisung mit der normalen Methode für die Schnittstelle aus. Sie können die Anweisung vorbereiten und dann ausführen, oder die Anweisung direkt ausführen.

    Bei ADO.NET gibt nur die Methode SACommand.ExecuteReader einen Cursor zurück. Er liefert einen Cursor nur zum Lesen und nur zum Weitergeben.

  2. Überprüfen Sie, ob die Anweisung eine Ergebnismenge zurückgibt.

    Ein Cursor wird implizit geöffnet, wenn eine Anweisung ausgeführt wird, die eine Ergebnismenge erstellt. Beim Öffnen eines Cursors wird er vor die erste Zeile der Ergebnismenge gesetzt.

  3. Rufen Sie die Ergebnisse ab.

    Obwohl ein einfacher Abrufvorgang den Cursor in die nächste Zeile der Ergebnismenge bewegt, ermöglicht SQL Anywhere auch kompliziertere Bewegungen in der Ergebnismenge.

  4. Schließen Sie den Cursor.

    Wenn Sie die Arbeit mit dem Cursor abgeschlossen haben, schließen Sie ihn, damit die ihm zugewiesenen Ressourcen freigegeben werden.

  5. Geben Sie die Anweisung frei.

    Wenn Sie eine vorbereitete Anweisung verwendet haben, geben Sie sie frei, um den benutzten Speicher wieder verfügbar zu machen.

♦  So verwenden Sie einen Cursor (Embedded SQL)
  1. Bereiten Sie eine Anweisung vor.

    Cursor verwenden üblicherweise einen Anweisungs-Handle statt einer Zeichenfolge. Sie müssen eine Anweisung vorbereiten, damit ein Handle verfügbar ist.

    Hinweise zum Vorbereiten einer Anweisung finden Sie unter Anweisungen vorbereiten.

  2. Deklarieren Sie den Cursor.

    Jeder Cursor bezieht sich auf eine einzelne SELECT- oder CALL-Anweisung. Wenn Sie einen Cursor deklarieren, geben Sie den Namen des Cursors und die Anweisung an, auf die er sich bezieht.

    Weitere Hinweise finden Sie unter DECLARE CURSOR-Anweisung [ESQL] [SP].

  3. Öffnen Sie den Cursor. Weitere Hinweise finden Sie unter OPEN-Anweisung [ESQL] [SP].

    Bei der CALL-Anweisung wird durch das Öffnen des Cursors die Prozedur bis zu dem Punkt ausgeführt, an dem die erste Zeile bezogen werden kann.

  4. Rufen Sie die Ergebnisse ab.

    Obwohl ein einfacher Abrufvorgang den Cursor in die nächste Zeile der Ergebnismenge bewegt, ermöglicht SQL Anywhere auch kompliziertere Bewegungen in der Ergebnismenge. Die verfügbaren Abrufvorgänge hängen davon ab, wie Sie den Cursor deklarieren. Weitere Hinweise finden Sie unter FETCH-Anweisung [ESQL] [SP] und Daten abrufen.

  5. Schließen Sie den Cursor.

    Wenn Sie die Arbeit mit dem Cursor abgeschlossen haben, schließen Sie ihn. Das setzt alle Ressourcen frei, die dem Cursor zugeordnet sind. Weitere Hinweise finden Sie unter CLOSE-Anweisung [ESQL] [SP].

  6. Löschen Sie die Anweisung.

    Um den Speicher freizugeben, der der Anweisung zugeordnet war, müssen Sie die Anweisung löschen. Weitere Hinweise finden Sie unter DROP STATEMENT-Anweisung [ESQL].

Weitere Hinweise zur Verwendung von Cursor in Embedded SQL finden Sie unter Daten abrufen.

Prefetch von Zeilen

In manchen Fällen kann die Interface-Bibliothek Performance-Optimierungen intern durchführen (z.B. Prefetch von Ergebnissen), sodass diese Schritte in der Clientanwendung möglicherweise nicht den Vorgängen in der Software entsprechen.