Moment, Du möchtest also auf jeden Fall vermeiden, dass einzelne Vokabeln doppelt abgefragt werden? Dann könntest Du Dir die bereits abgefragten DS (besser gesagt: deren IDs) in einer Liste merken und das
SQL entsprechend dynamisch zusammenbauen. Angenommen, die IDs 3 und 7 wurden bereits abgefragt, dann könnte das nächste Statement dann so aussehen:
SQL-Code:
SELECT * FROM VokabelListe
WHERE ID NOT IN (3,7)
Allerdings kenne ich mich mit der Syntax von SQLite nicht aus, evtl. muss das dort anders formuliert werden.
Achja, und zu Deinem Problemchen: enweder einen Alias verwenden
Delphi-Quellcode:
DeineQuery.SQL.Text := 'SELECT COUNT(ID) AS Anzahl FROM Tabelle';
DeineQuery.Open;
x := DeineQuery.FieldByName('Anzahl').Value;
oder über den Index auf das Feld zugreifen
Delphi-Quellcode:
DeineQuery.SQL.Text := 'SELECT COUNT(ID) FROM Tabelle';
DeineQuery.Open;
x := DeineQuery.Fields[0].Value;
Ich persönlich würde den Alias verwenden, das ist auch später noch nachzuvollziehen.