Kann mit SQLQuery1.fieldbyname nicht auf alle Felder der Abf

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
niederrheiner
Beiträge: 87
Registriert: Sa 19. Jan 2008, 17:21
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Rheinberg

Kann mit SQLQuery1.fieldbyname nicht auf alle Felder der Abf

Beitrag von niederrheiner »

Hallo an Alle,

mit der folgenden Codesequenz möchte ich auf die Ergebnisse der Abfrage zugreifen

Code: Alles auswählen

sql := 'SELECT max(PKT_distance) AS max_dist, AVG(PKT_hr) AS avg_hf, max(PKT_hr) AS max_hf FROM Punkte WHERE PKT_track = ' + isdigit(txttrack) + ';';
     SQLQuery1.SQL.Clear;
     SQLQuery1.SQL.Add(sql);
     SQLQuery1.Prepare;
     SQLQuery1.Open;
 
     if SQLQuery1.RecordCount > 0 then
       begin
        if SQLQuery1.Fieldcount > 0 then
           begin
                max_dist := SQLQuery1.fieldbyname('max_dist').asString;
                showmessage(max_dist);
                avg_hf := SQLQuery1.fieldbyname('avg_hf').asString;
                showmessage(avg_hf);
                max_hf := SQLQuery1.fieldbyname('max_hf').asString;
                showmessage(max_hf);
           end
           else
               showmessage('Keine Daten vorhanden');
           end;
     end;
     SQLQuery1.Close;
Diese Codesequenz funktioniert aber nur für die beiden Felder max_dist und avg_hr. Bei dem Feld max_hf erscheint die Fehlermeldung SQLQuery1: Field not found: "max_hf"

Gehe ich aber mit dem Debugger durch die Codesequenz, so erscheint das feld max_hf in der Message.

Woran kann es liegen, dass das Feld max_hf im normalen Durchlauf nicht erscheint aber im Debugmodus?

Danke für Eure Hilfe und Tipps.

MfG
Günter

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Kann mit SQLQuery1.fieldbyname nicht auf alle Felder der Abf

Beitrag von monta »

Im Debugmodus sitzt ja auf jeden Fall der Feldname von der abfrage her, bevor die Fehlermeldung ausgelöst wird, das das Feld nicht existiert...vielleicht siehst du also nur die Anforderung für das Feld.

BTW, schreibst du was für die Trainingsauswertung, wegen den Herzfrequenzen?
Johannes

niederrheiner
Beiträge: 87
Registriert: Sa 19. Jan 2008, 17:21
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Rheinberg

Re: Kann mit SQLQuery1.fieldbyname nicht auf alle Felder der Abf

Beitrag von niederrheiner »

Hallo Johannes,
danke für deine Antwort. Zwischenzeitlich hat sich das Problem erledigt. Ich habe es so gemacht wie einige CDU-Bundeskanzler(in), ich habe es ausgesessen :D Spass beiseite, derFfehler trat auf einmal nicht mehr auf, weiss der Henker warum. Jetzt läuft es so wie es soll.
monta hat geschrieben:BTW, schreibst du was für die Trainingsauswertung, wegen den Herzfrequenzen?
Ja. Dieses Programm soll die Trainingsdaten des Garmin Forerunner 305 auf ein Linuxsystem herunterladen und grafisch anzeigen. Das Programm soll eine Mischung aus dem Programm Garmin Trainingscenter und dem Programm Sportstracks werden. Beide Programme laufen ja nur unter Windoof und ich habe nur noch Windoof für diese beiden Programme. Ich bin mittlerweise soweit, das die Daten in eine DB (MySql) abgespeichert werden.

MfG
Günter

Antworten