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.
Ja, Du hast recht. Hätte ich anders schreiben sollen.
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.
Diesen Teil kenne ich und habe Ihn schon x-mal angewendet. Ich will das ganze aber unter
Delphi Prism machen und nicht unter Delphi.