AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi 1 Sekunde Unterschied zwischen DB DateTime Feld und Anwendung beim Speichern
Thema durchsuchen
Ansicht
Themen-Optionen

1 Sekunde Unterschied zwischen DB DateTime Feld und Anwendung beim Speichern

Ein Thema von Piro · begonnen am 30. Mai 2013 · letzter Beitrag vom 5. Jun 2013
Antwort Antwort
nahpets
(Gast)

n/a Beiträge
 
#1

AW: 1 Sekunde Unterschied zwischen DB DateTime Feld und Anwendung beim Speichern

  Alt 30. Mai 2013, 22:59
Daher wäre die erste Frage: Kann die Datenbank auch Sekundenbruchteile speichern?
Die Genauigkeit von datetime in MSSQL 2008 ist mit 0,00333 Sekunden angegeben. Aber selbst dabei kann es zu unterschiedlichen Ergebnissen kommen.
Klar, TDateTime geht ja bis auf tausendstel Sekunden. Da bleibt genug Spielraum für Rundungsfehler.

Dann muss hier wohl lastupdate sinnvollerweise auf ganze Sekunden gerundet werden, bevor es ans Speichern und Weiterverarbeiten geht.
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#2

AW: 1 Sekunde Unterschied zwischen DB DateTime Feld und Anwendung beim Speichern

  Alt 30. Mai 2013, 23:23
Kannst Du dir in der DB nicht einfach eine Stored Procedure anlegen, die den Datensatz in der DB aktualisiert / anhängt?
Von der SP kannst du dir den geschriebenen LastUpdate Wert nach dem Speichern als Ausgabeparameter zurückgeben lassen.
Abweichungen zwischen DB und "weiterer Verarbeitung" sind dann ausgeschlossen ...

Alternativ kannst Du Dir LastUpdate doch auch wieder zurückholen.
Aus Performancesicht ist das aber nicht ganz so optimal.

Delphi-Quellcode:
lastUpdate := now; // z.B. 2013-05-30 22:22:22
DSData.FieldbyName('lastupdate').AsDateTime := lastUpdate;
DSData.Post;
DSData.Refresh; // Daten aktualisieren, im MultiUser Betrieb hier ggf. noch prüfen ob sich die Cursorposition geändert hat
lastUpdate := DSData.FieldbyName('lastupdate').value; // natürlich noch auf NULL prüfen ..

Geändert von jensw_2000 (30. Mai 2013 um 23:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: 1 Sekunde Unterschied zwischen DB DateTime Feld und Anwendung beim Speichern

  Alt 31. Mai 2013, 02:38
Vielleicht besteht ja auch Interesse an Notifications. Viel cooler als Polling
Aber keine Ahnung wie gut das funktioniert, habe keine praktische Erfahrung mit MSSQL.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#4

AW: 1 Sekunde Unterschied zwischen DB DateTime Feld und Anwendung beim Speichern

  Alt 31. Mai 2013, 05:23
Vielleicht besteht ja auch Interesse an Notifications. Viel cooler als Polling
Aber keine Ahnung wie gut das funktioniert, habe keine praktische Erfahrung mit MSSQL.
Die Notifications funktionieren technisch ganz sicher, aber warum soll man sich in diesem Fall vom SQL Server benachrichtigen lassen das ein Datensatz geändert wurde, um dann auf dieses Event zu regieren und die Daten dann effektiv doch wieder zur Kontrolle von "lastUpdate" abzufragen? ...

Wir wissen doch, dass wir gerade mit ".Post" Daten geschrieben haben. Da muss uns doch kein Zweiter drüber informieren ..

Eventuell kann man den entgültigen "lastUpdate" Wert aber auch schon kontrollieren, nachdem das ADO Feld gefüllt wurde...
Delphi-Quellcode:
DSData.FieldbyName('lastupdate').AsDateTime := lastUpdate;
lastUpdate := DSData.FieldbyName('lastupdate').value;
Wäre einen Versuch wert. Dann spart er sich das "Read after Write".
Obwohl natütlich nichts über ein paar Zeilen guten alten SQL Code geht ..

Geändert von jensw_2000 (31. Mai 2013 um 05:34 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:23 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