AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TDBChart: zwei Werte aus Datenbank als X-Source
Thema durchsuchen
Ansicht
Themen-Optionen

TDBChart: zwei Werte aus Datenbank als X-Source

Ein Thema von Helmi · begonnen am 5. Okt 2020 · letzter Beitrag vom 16. Okt 2020
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 5. Okt 2020, 11:07
Hallo Gemeinde,

ich hab folgendes Problem:

In einer Datenbank werden mehrere Temperatur und Feuchtigkeitswerte gespeichert.
Dazu wird bei jedem Hinzufügen eines Datensatzes die Uhrzeit und das Datum in jeweils ein eigenes Feld geschrieben.

Die Werte der Datenbank werden in einem TDBChart in zwei Graphen angezeigt (als Y-Wert).
Als X-Wert aktuell nur die Uhrzeit.

Hier mal der Code für einen Graph:
Delphi-Quellcode:
  Graph_Feuchte_1 := TLineSeries.Create(DBChart_Filter);
  Graph_Feuchte_1.ParentChart := DBChart_Filter;
  Graph_Feuchte_1.DataSource := DataModule_DB.ZQuery;

  Graph_Feuchte_1.Name := 'Feuchte_1';
  Graph_Feuchte_1.Title := 'Feuchte 1';
  Graph_Feuchte_1.XLabelsSource := 'Uhrzeit';
  Graph_Feuchte_1.YValues.ValueSource := 'FeuchteSensor_1';
  Graph_Feuchte_1.VertAxis := aRightAxis;
  Graph_Feuchte_1.ShowInLegend := false;
  Graph_Feuchte_1.Color := clBlue;
  Graph_Feuchte_1.Tag := 2;
Wie man sehen kann, ist für X als Source "Uhrzeit" angegeben.
Ich hätte aber gerne dort "Datum" und "Uhrzeit".

Wie kann ich dies koppeln?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
LoZe

Registriert seit: 27. Dez 2016
Ort: Ulm
40 Beiträge
 
Delphi 12 Athens
 
#2

AW: TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 5. Okt 2020, 12:24
Hallo,
kannst du in der Datenbankabfrage nicht Datum und Uhrzeit zusammenfügen?
dann hättest du einen DateTime Wert
Chris

Geändert von LoZe ( 5. Okt 2020 um 12:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#3

AW: TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 6. Okt 2020, 14:41
Hallo,
kannst du in der Datenbankabfrage nicht Datum und Uhrzeit zusammenfügen?
dann hättest du einen DateTime Wert
mmh - ich weiß leider nur nicht wie
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 6. Okt 2020, 14:57
vielleicht ein concat?

Code:
select concat(Uhrzeitspalte,' ',Datumspalte) as Zeitpunktspalte from tabelle
  Mit Zitat antworten Zitat
LoZe

Registriert seit: 27. Dez 2016
Ort: Ulm
40 Beiträge
 
Delphi 12 Athens
 
#5

AW: TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 7. Okt 2020, 11:57
so evtl.
SELECT CAST(Datumspalte AS DATETIME) + CAST(Uhrzeitspalte AS DATETIME) as DatumMitUhrzeit, FeuchteSensor_1 FROM tabellenname
Chris
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#6

AW: TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 15. Okt 2020, 18:39
Wie verbind ich diese Select-Abfragen mit meiner schon vorhandenen Abfrage?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 15. Okt 2020, 19:21
Zeig doch mal Deine bestehende Abfrage, dann wird bestimmt der ein oder andere Vorschlag kommen
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#8

AW: TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 15. Okt 2020, 19:30
Hier mal mein Code:
Delphi-Quellcode:
  DataModule_DB.ZQuery.SQL.Clear;
  DataModule_DB.ZQuery.SQL.Add('SELECT ID, DATUM, UHRZEIT, TEMPSENSOR_1, FEUCHTESENSOR_1 FROM Wetterdaten');

  If not alle_Datensaetze then
    begin
      DataModule_DB.ZQuery.SQL.Add('WHERE DATUM = :Date AND UHRZEIT BETWEEN :Time_min AND :Time_max');
      DataModule_DB.ZQuery.SQL.Add('ORDER BY UHRZEIT');
    end
  else
    DataModule_DB.ZQuery.SQL.Add('ORDER BY DATUM');

  //Parameter
  If not alle_Datensaetze then
    begin
      DataModule_DB.ZQuery.ParamByName('Date').AsDate := Datum;
      DataModule_DB.ZQuery.ParamByName('Time_min').AsTime := Uhrzeit_min;
      DataModule_DB.ZQuery.ParamByName('Time_max').AsTime := Uhrzeit_max;
    end;

  DataModule_DB.ZQuery.Open;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 15. Okt 2020, 19:37
Versuchs mal so:

Delphi-Quellcode:
  DataModule_DB.ZQuery.SQL.Clear;
  DataModule_DB.ZQuery.SQL.Add('SELECT ID, DATUM, UHRZEIT, CONCAT(DATUM,' ',UHRZEIT) as DatumUhrzeit, TEMPSENSOR_1, FEUCHTESENSOR_1 FROM Wetterdaten');
Code:
Graph_Feuchte_1.XLabelsSource := 'DatumUhrzeit';
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: TDBChart: zwei Werte aus Datenbank als X-Source

  Alt 15. Okt 2020, 21:28
Oder besser

SQL-Code:
SELECT
  ID, DATUM, UHRZEIT, DATUM+UHRZEIT as DatumUhrzeit, TEMPSENSOR_1, FEUCHTESENSOR_1
FROM
  Wetterdaten;
Dann hat das Feld den richtigen Typ. Bei einem String (Concat oder ||) hättest Du dann auch ein falsches Datum-/Zeitformat.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz