Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi neuere Datzensätze fehlen beim Abfragen (https://www.delphipraxis.net/192727-neuere-datzensaetze-fehlen-beim-abfragen.html)

p80286 15. Mai 2017 11:54

AW: neuere Datzensätze fehlen beim Abfragen
 
Zitat:

Zitat von mjustin (Beitrag 1371461)
Zitat:

Zitat von jobo (Beitrag 1371426)
Isolation Level != commited sind (...) bedeutungslos.

Repeatable Read Transaktionen, um einen unveränderlichen Schnappschuss zu erhalten, in dem man die Datenbank völlig unabhängig von Insert/Update/Deletes anderer sehen kann, sind bedeutungslos?

Jetzt hole ich die Chips, es geht los!
K-H

hoika 15. Mai 2017 13:01

AW: neuere Datzensätze fehlen beim Abfragen
 
Hallo,
Zitat:

bedeutungslos
Nein, aber nicht wirklich sinnvoll.

Ein jederzeit konsistenter Zustand der Sicht auf die Daten ist aber nur beim ReadCommitted gegeben.

Mein Lieblings-Bsp. ist einer Lagerverwaltung:
Ich mache 14:00 eine Stunde Inventur, habe eine Inventursumme, gehe die einzelnen Positionen durch usw..
14:30 trägt jemand etwas ins Lager ein.

Ich erwarte, dass ich 14:31 immer noch meinen Lagerstand von 14:00 habe.
Sonst stimmt ja meine Summe nicht und ich kann von vorn anfangen.

(Deswegen machen ja viele Papier-Inventur ausserhalb der Arbeitszeit)

jobo 15. Mai 2017 13:55

AW: neuere Datzensätze fehlen beim Abfragen
 
@Chips, bedeutungslos usw.
Ich schrieb ja "am Ende des Tages bedeutungslos". Für wen der Tag wann endet, mag jeder selber entscheiden.
Mir schien es sinnvoll, oder besser ich halte es immer noch für sinnvoll, die möglichen Optionen, die man im Transaktionshandling hat, nach bester Wahl priorisiert darzustellen.

haentschman 15. Mai 2017 14:42

AW: neuere Datzensätze fehlen beim Abfragen
 
Hallo Helmi...:P
Ich gebe noch nicht auf, daß du siehst das WITH schlecht ist. :wink:

Vergleich:
Delphi-Quellcode:
//Filter setzen
  with DataModule_DB.ZQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT DATUM, UHRZEIT, TEMPSENSOR_1, FEUCHTESENSOR_1 FROM Wetterdaten ');
      If not alle_Datensaetze then
        SQL.Add('WHERE DATUM = :DATE');
      SQL.Add('ORDER BY UHRZEIT');
      //Parameter
      If not alle_Datensaetze then
        ParamByName('DATE').AsDate := Datum;
      Open;
    end;
gegen...
Delphi-Quellcode:
//Filter setzen
 DataModule_DB.ZQuery.SQL.Text := 'SELECT DATUM, UHRZEIT, TEMPSENSOR_1, FEUCHTESENSOR_1 FROM Wetterdaten ';
 if not alle_Datensaetze then
 begin
   SQL.Add('WHERE DATUM = :DATE');
   DataModule_DB.ZQuery.ParamByName('DATE').AsDate := Datum;
 end;
 DataModule_DB.ZQuery.SQL.Add('ORDER BY UHRZEIT');
 DataModule_DB.ZQuery.Open;
..merkst du was? Du machst es dir schwerer als notwendig ist. :zwinker: Mit dem WITH kannst außerdem du nicht mehr debuggen! ParamByName('DATE').AsDate bringt kein Ergebnis am Breakpoint. Und außerdem brauchst du mehr Quelltextzeilen. :roll:

Wenn du dir nicht helfen lassen willst bin ich hier raus. Ansonsten frage nach... :wink:

mkinzler 15. Mai 2017 15:48

AW: neuere Datzensätze fehlen beim Abfragen
 
Oder noch besser:

Delphi-Quellcode:
 DataModule_DB.ZQuery.SQL.Text := 'SELECT DATUM, UHRZEIT, TEMPSENSOR_1, FEUCHTESENSOR_1 FROM Wetterdaten WHERE (:Alle = 1 or DATUM = :DATE) ORDER BY UHRZEIT';
...
if alle_Datensaetze then
 begin
    DataModule_DB.ZQuery.ParamByName('alle').Value := 1;
 end
 DataModule_DB.ZQuery.ParamByName('DATE').AsDate := Datum;
 DataModule_DB.ZQuery.Open;

hoika 15. Mai 2017 16:19

AW: neuere Datzensätze fehlen beim Abfragen
 
Hallo,

Delphi-Quellcode:
var
  Q: TZQuery;
begin
  Q := DataModule_DB.ZQuery;
  Q.

haentschman 15. Mai 2017 17:13

AW: neuere Datzensätze fehlen beim Abfragen
 
...nicht überfordern. :zwinker: Was für uns selbstverständlich ist, ist für andere ein Dorf im Böhmen. :P

Helmi 15. Mai 2017 17:42

AW: neuere Datzensätze fehlen beim Abfragen
 
Hallo,

es mag sein, dass manchen, wie ich es auch schon in einem anderen Thread deutlich gemacht habe, mein Programmierstil, bzw. dieser Stil, den ich in dem kleinen Code-Auszug dargestellt habe, nicht gefallen mag.

Unabhängig davon, sehe ich keinen Grund dafür penetrant seinen eigenen, seiner Ansicht nach, schöneren/besseren/kürzeren Stil mit allen Mitteln jemanden aufzuzwingen.

Mir sind die Gefahren "with" zu nutzen mehr als bekannt, was aber nicht die Verwendung verbietet.

Zitat:

Zitat von haentschman (Beitrag 1371506)
...nicht überfordern. :zwinker: Was für uns selbstverständlich ist, ist für andere ein Dorf im Böhmen. :P

Auch wenn ich dir mal unterstelle, dass du dies nicht so herablassend gemeint hast, wie es rüberkommt, sehe ich keinen Grund, dies kundzutun.

Es ist schon der 2. Thread der ins Offtopic abdriftet - nur weil es Mitglieder gibt, die es anscheinend nicht verstehen können, wenn man ihren Programmstil nicht bevorzugt.
Lasst es doch bitte einfach bleiben - es geht um das Problem im ersten Thread - nicht um Schönheitspokale bei der Codegestaltung!

Daniel 15. Mai 2017 17:51

AW: neuere Datzensätze fehlen beim Abfragen
 
Das hier beschriebene Ausgangsproblem liegt ja auch nicht im Zusammenhang mit der Verwendung von "with".
"With" gestaltet den Code üblicherweise unübersichtlicher, dem stimme ich zu. das alles aber in einem Thema für Datenbanken abhandeln zu wollen, ist völlig fehl am Platze. Auch später, wenn Dritte nach einer Lösung zum DB-Problem suchen, sollten sie sich nicht durch Abhandlungen zum Thema "with" durchbeißen müssen. Die Kritik an "with" hat ihre Berechtigung, aber nicht an diesem Platz.

mkinzler 15. Mai 2017 17:52

AW: neuere Datzensätze fehlen beim Abfragen
 
Es geht hier nicht nur um Schönheit, sondern um Performance und Effizienz. Zudem um weniger Fehleranfälligkeit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 Uhr.
Seite 2 von 3     12 3      

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