Ein Cursor wird benutzt, um Zeilen aus einer Abfrage abzurufen, die mehrere Zeilen in ihrer Ergebnismenge hat. Ein Cursor ist ein Handle oder ein Name (identifier) für die SQL-Abfrage und eine Position innerhalb der Ergebnismenge.
Die Cursor-Verwaltung in Embedded SQL erfordert folgende Schritte:
Deklarieren Sie einen Cursor für eine bestimmte SELECT-Anweisung mit der DECLARE CURSOR-Anweisung.
Öffnen Sie den Cursor mit der Anweisung OPEN.
Rufen Sie die Ergebnisse Zeile für Zeile mit der FETCH-Anweisung aus dem Cursor ab.
Wiederholen Sie das Abrufen der Zeilen, bis die Warnung Zeile nicht gefunden
zurückgegeben wird.
Fehler und Warnungen werden in der SQLCA-Struktur zurückgegeben.
Schließen Sie den Cursor mit der CLOSE-Anweisung.
Als Voreinstellung werden Cursor automatisch am Ende der Transaktion geschlossen (bei COMMIT oder ROLLBACK). Cursor, die mit einer WITH HOLD-Klausel geöffnet werden, bleiben für folgende Transaktionen geöffnet, bis sie explizit geschlossen werden.
Das folgende einfache Beispiel zeigt den Gebrauch von Cursor:
void print_employees( void ) { EXEC SQL BEGIN DECLARE SECTION; char name[50]; char sex; char birthdate[15]; a_sql_len ind_birthdate; EXEC SQL END DECLARE SECTION; EXEC SQL DECLARE C1 CURSOR FOR SELECT GivenName || ' ' || Surname, Sex, BirthDate FROM Employees; EXEC SQL OPEN C1; for( ;; ) { EXEC SQL FETCH C1 INTO :name, :sex, :birthdate:ind_birthdate; if( SQLCODE == SQLE_NOTFOUND ) { break; } else if( SQLCODE < 0 ) { break; } if( ind_birthdate < 0 ) { strcpy( birthdate, "UNKNOWN" ); } printf( "Name: %s Sex: %c Birthdate: %s\n", name, sex, birthdate ); } EXEC SQL CLOSE C1; } |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |