![]() |
AW: FB: Unique Index auf Datum und Uhrzeit
Zitat:
Gruß K-H |
AW: FB: Unique Index auf Datum und Uhrzeit
Wenn die kleinste Auflösung Minuten sein soll, dann kann ich bei 'nem Floatwert innerhalb einer Minute noch ein paar tausend Floatwerte bekommen, die innerhalb dieser Minute liegen. Mein Index bleibt aber weiterhin eindeutig.
Wenn ich die Uhrzeit als Float habe, aber die Eindeutigkeit auf maximal einem Satz pro Minute liegen soll, komme ich nicht ohne Rechnerei (Datenmanipulation, Umrechnung ...) aus. |
AW: FB: Unique Index auf Datum und Uhrzeit
Hallo,
kommt so im etwa hin. |
AW: FB: Unique Index auf Datum und Uhrzeit
Du hast diesen Aspekt zwar nicht angesprochen, aber als Anregung:
1) Ein unique-Index, zu dem es in der Wirklich keine unique-Eigenschaft gibt, ist ein Design Flaw. 2) Ein unique-Index auf ein Datum/Zeit Attribut verbirgt meistens ein Designproblem. |
AW: FB: Unique Index auf Datum und Uhrzeit
Noch 2 Anmerkungen:
Ein Date Field mit Date und Time Anteil kann man auch unter Verwendung des Index auf Date abfragen indem man <between :gewünschtesDate and :gewünschtesDate+1 verwendet (Der Parameter darf natürlich dann keinen Timeanteil enthalten), analog mit >< Operatoren. Gibt es den Bedarf auch reine Time Werte derart abzufragen, sieht es allerdings nicht so gut aus. Ob es dann für das Time Abfrage Problem Anwendungsfälle gibt, sei mal dahin gestellt. Neben den rechnerischen Verfahren für exakte DateTime Werte von Delphi.Narium kann man auch Textkonvertierung mit Cast nutzen oder mit AddDate (.. Intervall) arbeiten. Diese Möglichkeiten bestehen hoffentlich auch im alten Dialekt. |
AW: FB: Unique Index auf Datum und Uhrzeit
Hallo,
Zitat:
sondern das sind zusätzliche Felder, die zusammen mit einem anderen Integer-Feld einen eindeutigen Wert erzeugen sollen. Zitat:
Das mit dem Between oder >= <= ist schon klar. |
AW: FB: Unique Index auf Datum und Uhrzeit
Und wenn man einfach ein neues Feld mit dem "abgeschnittenen" Datum anlegt, das per Trigger befüllt/aktualisiert wird? Das könnte dann VARCHAR oder INT sein, den Index legt man dann auf dieses Feld, so wie man das früher z.B. für einen case-insensitiven UNIQUE-Index auf VARCHAR-Felder machen musste.
|
AW: FB: Unique Index auf Datum und Uhrzeit
Hallo,
ich mag keine Trigger ;) Nö, ich mach das jetzt mit den Extra-Feldern als String. Ich bin ja der der die Dateneingabe schreibt, und ändern soll sich das auch nicht lassen. |
AW: FB: Unique Index auf Datum und Uhrzeit
Zitat:
Ob die per Mathematik zugeschnitten werden (wenn sie eh als Zahl reinkommen) oder mit Textfunktionen (wenn sie bspw. aus einem Textedit stammen oder einer Komponenten, die auch Stringausgabe liefert), sie landen in der gewünschten Genauigkeit in der Spalte und sind in diesem Range dann eindeutig und bieten das Datenmaterial für einen Unique/Primary Constraint (ob jetzt mit oder ohne andere Spalten) Das Problem der Un-/Wirksamkeit des Index gilt erst bei der Abfrage, wenn dort bspw. auf der Spalte gecastet wird oder mit anderen Funktionen rumgesäbelt wird. Erlaubt und sinnvoll ist die Anwendung von Funktionen natürlich wieder auf Parameter Seite. (Indexwirksamkeit hat natürlich gar nichts mit dem Unique Constraint zu tun, sollte aber immer berücksichtigt werden.) |
AW: FB: Unique Index auf Datum und Uhrzeit
Hallo,
ok. Zitat:
Dass ich da auch was abfragen kann, ist mir erst mal nebensächlich. Ich will verhindern, dass im Mehrnutzerbetrieb aus Versehen ein doppelter Datensatz erzeugt wird. Im Programm prüfe ich das natürlich vorher selbst, aber sicher ist sicher. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 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