![]() |
Datenbank: Firebird • Version: 2.5.8 • Zugriff über: DBX
Firebird mit DBX und Clientdataset, Rundungsfehler bei Zeitstempel?
Konfiguration:
Firebird-Datenbank, Zugriff über DBX-Komponenten (TSQLQuery) und Clientdataset Meine Tabelle enthält ein Zeitstempel-Feld vom Typ Timestamp. Befüllt wurde dieses Feld teils mit anderen Programmen/Zugriffskomponenten (Tabellenkonvertierung etc.). Ich habe jetzt in meiner Tabelle eine Serie von Daten, alle mit dem selben Zeitstempel. Bei Post/ApplyUpdate der Datensätze kommt es zu einer Exception, weil beim Update keine Datensätze gefunden werden, die den Bedingungen (aktuell upWhereAll) entsprechen. Ursache ist in irgendeiner Form das Datumsfeld. Wenn ich in der Tabelle manuell ein anderes Datum eintrage, funktioniert das Update anschliessend. Wer kennt den Grund für dieses Verhalten? |
AW: Firebird mit DBX und Clientdataset, Rundungsfehler bei Zeitstempel?
Vor einigen Jahren ist mir das bereits aufgefallen (Java-Anwendungen schreiben Zeitstempel, Delphi-Anwendungen finden danach den Datensatz nicht mehr ...)
Die Ursache war, dass dbExpress keine Millisekunden in den Zeitfeldern speichert. Wir haben daher die anderen Anwendungen so geändert, dass der Millisekunden-Anteil vor dem Update aus dem Zeitwert entfernt wurde. In der Datenbank stehen damit einheitlich alle Zeitstempel immer ohne Millisekunden. |
AW: Firebird mit DBX und Clientdataset, Rundungsfehler bei Zeitstempel?
Zitat:
Ich hatte einen Teil der Datensätze mit einem Quick-and-Dirty-Firedac-Programm konvertiert und dabei wohl den Zeitstempel inkl. Millisekunden in einen Teil der Datensätze bekommen, das Programm selbst verwendet aber noch die alten DBX-Komponenten. Und da soll einer draufkommen :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 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