Einige Anwendungen bauen SQL-Anweisungen auf, die in der Anwendung nicht ausgeführt werden können. Anweisungen hängen manchmal von einer Antwort des Benutzers ab, sodass die Anwendung erst dann erfährt, welche Daten abzurufen sind, wenn z.B. eine Berichtsanwendung dem Benutzer die Möglichkeit gibt, die anzuzeigenden Spalten auszuwählen.
In einem solchen Fall benötigt die Anwendung eine Methode, um Informationen über die Art der Ergebnismenge selbst sowie den Inhalt der Ergebnismenge zu erhalten. Die Informationen über die Art der Ergebnismenge werden als Deskriptor bezeichnet. Sie identifizieren die Datenstruktur einschließlich Anzahl und Typ der erwarteten Spalten. Wenn die Anwendung die Art der Ergebnismenge ermittelt hat, ist der Abruf des Inhalts ein einfacher Vorgang.
Diese Ergebnismengen-Metadaten (Informationen über Art und Inhalt der Daten) werden mithilfe von Deskriptoren bearbeitet. Das Beziehen und Verwalten von Ergebnismengen-Metadaten wird als Beschreiben bezeichnet.
Da Cursor im Allgemeinen Ergebnismengen produzieren, sind Deskriptoren und Cursor eng verknüpft, obwohl manche Schnittstellen die Verwendung von Deskriptoren vor dem Benutzer verbergen. Normalerweise gilt: Anweisungen, die Deskriptoren benötigen, sind entweder SELECT-Anweisungen oder gespeicherte Prozeduren, die Ergebnismengen zurückgeben.
Ein Deskriptor wird bei einem cursorbasierten Vorgang folgendermaßen eingesetzt:
Weisen Sie den Deskriptor zu. Dies kann implizit erfolgen, die explizite Zuweisung ist aber in manchen Schnittstellen zulässig.
Bereiten Sie die Anweisung vor.
Anweisung beschreiben. Wenn es sich bei der Anweisung um eine gespeicherte Prozedur oder um einen Batch handelt und die Ergebnismenge nicht durch eine Ergebnisklausel in der Prozedurdefinition definiert wird, sollte die Beschreibung nach dem Öffnen des Cursors erscheinen.
Deklarieren Sie einen Cursor für die Anweisung und öffnen Sie ihn (Embedded SQL), oder führen Sie die Anweisung aus.
Beziehen Sie den Deskriptor und ändern Sie erforderlichenfalls den zugewiesenen Bereich. Dies erfolgt oft implizit.
Rufen Sie die Anweisungsergebnisse ab und und verarbeiten Sie sie.
Heben Sie die Zuweisung des Deskriptors auf.
Schließen Sie den Cursor.
Löschen Sie die Anweisung. Einige Schnittstellen führen dies automatisch durch.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |