SqliteQueryNext
value SqliteQueryNext ( value rxQuery, string/value BYREF varToBind... );
Rückgabewert
Rückgabewert |
Beschreibung |
0 |
Der nächste Datensatz wurde erfolgreich gelesen. |
-1 |
Es konnte kein weiterer Datensatz gelesen werden bzw. es konnte kein Datensatz gefunden werden. |
Parameter
rxQuery
Das Abfrage-Objekt, von dem der nächste Datensatz gelesen werden soll.
varToBind
Die Variable/n, an die der aktuelle Wert des entsprechenden Feldes übergeben werden soll (optional). Die Bindung erfolgt von links nach rechts der Ergebnisfelder des SQL-Select Ausdrucks.
Bemerkung
Bewegt den Lesezeiger des Abfrage-Objekts rxQuery zur nächsten Zeile. Wurden zusätzlich Bindungsvariablen varToBind mit übergeben, so werden diese automatisch mit den Werten des Datensatzes geladen, sodass auf nachfolgende SqliteQueryGetValue Aufrufe verzichtet werden kann. Gibt es keine weiteren Datensätze oder überhaupt keinen Datensatz für die Abfrage, liefert die Funktion -1 zurück.
Es ist zu beachten, dass nach einem SqliteQueryOpen noch keine lesbarer Datensatz zur Verfügung steht. D.h. erst mithilfe eines nachfolgenden SqliteQueryNext kann festgestellt werden, ob die Abfrage überhaupt einen Datensatz als Resultat liefert - wenn ja, dann ist der erste Datensatz mit diesem SqliteQueryNext Aufruf schon geladen worden.
Beispiele
Das nachfolgende Beispiel summiert die Feldinhalte Anzahl (Count) und Gewicht (Weight) einer Tabelle (DoneOrders) auf.
if (SqliteDatabaseOpen(dxSqlite, "c:\data.sqlite")) return (SqliteGetLastError(strLastSqliteError)); end if (SqliteQueryOpen(dxSqlite, rxQuery, "select Count, Weight from DoneOrders")) return (SqliteGetLastError(strLastSqliteError)); end value count, sumCount = 0; value weight, sumWeight = 0; while (!SqliteQueryNext(rxQuery)) SqliteQueryGetValue(rxQuery, "Count", count); SqliteQueryGetValue(rxQuery, 1, weight); sumCount += count; sumWeight += weight; end SqliteQueryClose(rxQuery);
Die Programmcode zum Auslesen und Aufsummieren der Tabelleninhalte könnte auch so entwickelt sein.
while (!SqliteQueryNext(rxQuery, count, weight)) sumCount += count; sumWeight += weight; end
Siehe auch SqliteDatabaseOpen, SqliteDatabaseClose, SqliteExecute, SqliteQuery, SqliteQueryOpen, SqliteQueryGetValue, SqliteQueryClose, SqliteGetLastError