Die Klasse Result repräsentiert u.a das Ergebnis einer SQL-Anfrage:
Die Klasse kann nicht erzeugt werden. Diese Klasse verhält sich wie ein Lese-/Schreib-Array. Diese Klasse ist mit dem Schlüsselwort FOR EACH enumerierbar.
Beispiele
Dim hResult As Result Dim vVariant As Variant vVariant = hResult [ Fieldname As String ] oder vVariant = hResult!Fieldname
Die letzten beiden Anweisungen liefern jeweils den Wert eines Feldes mit dem angegebenen Feldnamen im aktuellen Datensatz des Ergebnisobjekts.
Result-Cursor
Das Ergebnisobjekt ist ein Cursor als Ansicht einer eingeschränkten Menge von Zeilen, der sich aus der Ausführung der Abfrage durch das DBMS ergibt. Der Cursor kann, je nachdem wie er ausgeführt wurde, Zeilen und Tabellen in der Datenbank „sperren“ oder nicht. Diese Sperre ermöglicht es, dass nur ein Benutzer gleichzeitig garantierte Aktualisierungen der Daten in der Datenbank vornehmen kann. Das ist ein fundamentaler Ansatz in der Theorie von DB-Managenmentsystemen. In der DB-Welt von Gambas wird dieser Cursor als schreibgeschützt und lesend/schreibend beschrieben. Verschiedene Methoden zur Ergebnisrückgabe aus der Klasse Connection liefern unterschiedliche Cursor-Typen zurück:
Die Klasse Result verfügt über diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Available | Boolean | Liefert True, wenn das Ergebnisobjekt eine oder mehrere zugriffsbereite Datenbankzeilen enthält. |
Connection | Connection | Liefert das übergeordnete DB-Verbindungsobjekt. |
Count | Integer | Liefert die Anzahl der Zeilen im Abfrageergebnis-Cursor genau dann, wenn das DB-Managementsystem, der DB-Treiber, die Treiber-Schnittstelle und die Gambas-Schnittstelle die Rückgabe von Zeilen-Anzahlen für die ausgeführte spezifische SQL-Abfrage unterstützen. ODBC-Verbindungen können je nach zugrunde liegendem ODBC-Treiber möglicherweise nicht die Anzahl der Datensätze ermitteln. In diesem Fall wird der Wert -1 zurückgegeben. Die Zählung beginnt mit 0. |
Index | Integer | Liefert den Index des aktuellen Datensatzes, beginnend mit 0. |
Max | Integer | Liefert Result.Count - 1 (solange Count >= 0 ist, sonst wird -1 zurückgegeben). |
Fields | Result.Fields | Liefert eine Auflistung der Felder des DB-Resultats. |
Tabelle 22.4.10.1.1 : Eigenschaften der Klasse Result
Die Klasse Result verfügt über diese Methoden:
Methode | Rückgabetyp | Beschreibung |
---|---|---|
All ( Field As String ) | Array | Liefert den Wert des angegebenen Feldes jedes Ergebnissatzes als Array. Diese Methode ist etwa doppelt so schnell wie der entsprechende Code in Gambas. |
Delete ( [ Keep As Boolean ] ) | - | Löscht den aktuellen Datensatz. Wenn `Keep` TRUE ist, dann wird der Datensatz nicht aus dem Ergebnisobjekt entfernt. |
Update ( ) | - | Aktualisiert den aktuellen Datensatz in der Datenbank, wenn dieser Datensatz geändert wurde und das Result ein Lese-/Schreib-Cursor ist. |
MoveFirst ( ) | Boolean | Wechselt zum ersten Datensatz des Results. Liefert TRUE, wenn keine Datensätze im Result vorhanden sind. |
MoveLast ( ) | Boolean | Wechselt zum letzten Datensatz des Results. Liefert TRUE, wenn keine Datensätze im Result vorhanden sind. |
MoveNext ( ) | Boolean | Wechselt zum nächsten Datensatz des Results. Liefert TRUE, wenn das Result ungültig ist oder wenn es keinen nächsten Datensatz gibt. |
MovePrevious ( ) | Boolean | Wechselt zum vorherigen Datensatz des Resultats. Liefert TRUE, wenn das Resultat ungültig ist oder wenn es keinen vorherigen Datensatz gibt. |
MoveTo ( Index As Integer ) | Boolean | Wechselt zu einem bestimmten Datensatz. Liefert TRUE, wenn das Result ungültig ist oder wenn der Index nicht gültig ist. |
Tabelle 22.4.10.2.1 : Methoden der Klasse Result
Diese Klasse beschreibt alle Felder in einem Result. Die Eigenschaft Result.Fields.Count (Datentyp Integer) gibt die Anzahl der Datensätze im Ergebnis einer Datenbank-Abfrage zurück.
Die Klasse verfügt über diese beiden Methoden:
Methode | Rückgabetyp | Beschreibung |
---|---|---|
Exist ( Key As String ) | Boolean | Die Funktion liefert True, wenn das angegebene Element im Ergebnis existiert oder False für das Gegenteil. |
Refresh ( ) | - | Aktualisiert die Übersicht (Daten-Typ Result.Fields) der Felder im Ergebnis (der DB-Anfrage), indem der interne Cache geleert wird. |
Tabelle 22.4.10.4.1 : Methoden der Klasse Result.Fields