Ich möchte keine Datenbank-Komponenten (DBGrid oder ähnliches) verwenden
Du meinst du willst keine Datenbank-
Controls verwenden.
Ich denke, als Delphi Programmierer sollte man hier etwas präziser sein.
Aber jetzt zur eigentlichen Frage.
Um Daten aus einer Datenbank zu lesen muss man eine Abfrage ausführen.
Query-Komponenten sind von TDataset abgeleitet und erben daher dessen Methoden und Properties.
In folgendem Beispiel werden zwei Wege gezeigt, um auf die Inhalte der Felder zuzugreifen.
Der Weg über .FieldByName().AsXXXX ist zwar aufwändiger zu schreiben, aber gerade beim
Lesen häufig nötig um die
Exception "ungültige Variantumwandlung" zu vermeiden.
(denn Felder können auch "NULL" enthalten)
Delphi-Quellcode:
var
summe : double;
begin
// eine Query öffnen und mit einer Schleife die Werte im Feld "Preis" aufsummieren
Query1.SQL.Text := '
SELECT * FROM Details';
Query1.Open;
// entspricht .Active := True;
while not Query1.Eof
do
begin
if Query1['
Kategorie'] <> '
deleted'
then
summe := summe + Query1.FieldByName('
Preis').AsFloat;
Query1.Next;
end;
Query1.Close;
PS: da nur gelesen wird, werden keine Transactions gebraucht.