AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lazarus DBGrid Eintrag

Offene Frage von "xDdaviiDxD"
Ein Thema von xDdaviiDxD · begonnen am 7. Nov 2022 · letzter Beitrag vom 30. Nov 2022
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#2

AW: Lazarus DBGrid Eintrag

  Alt 7. Nov 2022, 20:42
Delphi-Quellcode:
begin
   // Bisherige Abfrage schließen.
  DB_Query_Eintragen.Close;
  // Neues Statement zuweisen.
  // Ohne Order By ist die Reihenfolge eher zufällig.
  // Eventuell select * from daten order by Datum, Zeit?
  DB_Query_Eintragen.SQL.Text := 'select * from daten';
  // Abfrage öffnen
  DB_Query_Eintragen.Open;
  // Zum letzten Satz gehen, ohne Order By nicht zwingend der höchste, Stand,
  // das neueste Datum, sondern nur das, was die Datenbank zufällig als Letztes liefert.
  DB_Query_Eintragen.Last;
  // Berechnungen durchführen
  // Der Wert von Neu aus dem letzten Datensatz wird im neuen Datensatz der Wert für Stand.
  zStand := DB_Query_Eintragen.FieldByName('Neu').AsInteger;
  xZaehlerstand := StrToInt(LbE_Zaehler.Text);
  yVerbrauch := xZaehlerstand - zStand;
  // neuen Datensatz einfügen und Werte zuweisen
  DB_Query_Eintragen.Append;
  DB_Query_Eintragen.FieldByName('Datum').AsDateTime := Date;
  // Warum Datum als TDateTime und Zeit als String?
  DB_Query_Eintragen.FieldByName('Zeit').AsString := TimeToStr(Time);
  // oder DB_Query_Eintragen.FieldByName('Zeit').AsDateTime := Time;
  DB_Query_Eintragen.FieldByName('Name').AsString := CbB_Name.Text;
  DB_Query_Eintragen.FieldByName('Stand').AsInteger := zStand;
  DB_Query_Eintragen.FieldByName('Neu').AsInteger := xZaehlerstand;
  DB_Query_Eintragen.FieldByName('Verbrauch').AsInteger := yVerbrauch;
  // und Daten speichern.
  DB_Query_Eintragen.Post;
  // Abfrage schließen.
  DB_Query_Eintragen.Close;
  // Welcher Zusammenhang besteht zwischen
  // der Abfrage DB_Query_Eintragen, Table_Daten und dem DBGrid?
  Table_Daten.Refresh;
end;
Habe mal deinen Quelltext etwas überarbeitet und kommentiert, keine Ahnung, ob dadurch dein Problem gelöst werden kann.

.AsVariant nutze ich nur, wenn ich den Datentyp nicht kenne.

Wenn x ein Integer ist, ist eine Zuweisung der Art .AsVariant := x , nicht zwingend sinnvoll, da ist .AsInteger := x bessert, dito. natürlich auch für Strings, ...

Mit welcher Datenbankkomponente ist das DBGrid verbunden? Mit DB_Query_Eintragen oder mit Table_Daten. Welche Daten enthält überhaupt Table_Daten?

Sollte das DBGrid mit DB_Query_Eintragen verbunden sein, muss DB_Query_Eintragen.Close; entfallen, da dadurch die Datenmenge geschlossen wird und damit keine Anzeige im DBGrid möglich ist.
  Mit Zitat antworten Zitat
 

 

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:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz