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