Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: Daten aus einer Select-Anweisung auslesen ohne DataGrid

  Alt 13. Feb 2011, 09:01
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'] <> 'deletedthen
      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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat