![]() |
Datenbank: firebird • Version: 2.5 • Zugriff über: Delphi XE
TDateTime und Timestamp
Hallo zusammen,
ich hab in Delphi eine Variablentyp TDateTime dessen Wert ich in eine Timestamp Datenfeld in Firebird übergeben möchte. Momentan sieht es bei mir so aus:
Code:
Es wird nur kein Wert übermittelt. Weiß jemand evtl woran es liegt?
today: TDateTime;
IB_PhoneCallCALLTIME_START.AsString := DateTimeToStr(today); |
AW: TDateTime und Timestamp
Mit .AsDateTime?
|
AW: TDateTime und Timestamp
Zitat:
Wenn Feld DateTime, warum dann 2 Mal die Umwandlung in string?
Code:
reicht, wenn aktuelles Datum gewünscht...
DateTimeField.Value := Today:
oder
Code:
... wenn irgendein Datum...
Var
LDatum: TDateTime; ... DateTimeField.Value := LDatum: oder das Feld gleich als default current_date definieren... Frank |
AW: TDateTime und Timestamp
Zitat:
|
AW: TDateTime und Timestamp
Zitat:
|
AW: TDateTime und Timestamp
Zitat:
|
AW: TDateTime und Timestamp
Zitat:
Dachte immer das Vairant zur Laufzeit "irgendwie interpretiert wird" (und wenn man Glück hat, kommt das Richtige dabei raus ;-) - meistens ;-)) Variant nutze ich nur, wenn ich mich auf die Interpretation verlassen muss, z. B. bei OleObjekten. Weiß ich, um was für einen Typ es sich handelt, dann nutze ich den auch. Also: .AsString, .AsInteger, .AsDateTime ... Hat den Vorteil, dass auch die Typsicherheit gewahrt bleibt. |
AW: TDateTime und Timestamp
Eigentlich kennt jede DB "today" das muß nicht von aussen kommen.
Vor allem Bei DB die über mehrere Standorte weltweit verteilt snd ist das vorteilhaft. Gruß K-H |
AW: TDateTime und Timestamp
Zitat:
Delphi-Quellcode:
ist, dann ist das Property
TDateTimeField
Delphi-Quellcode:
kein
Value
Delphi-Quellcode:
, sondern ein
Variant
Delphi-Quellcode:
. Nur bei einem
TDateTime
Delphi-Quellcode:
ist Value ein
TField
Delphi-Quellcode:
.
Variant
|
AW: TDateTime und Timestamp
Zitat:
|
AW: TDateTime und Timestamp
Ich sehe in der Ausgangsfrage einige "Ungereimtheiten".
Wenn das Feld wirklich ein TimeStamp ist, dann wäre die Zuweisung Now anstatt Today logischer. Es scheint auch, als ob es besser wäre, das Feld in der DB als "default current_timestamp" anzulegen. Aber um das richtig zu bewerten reichen die Info' s nicht. Die Frage mit Value oder As... kann man auch nicht pauschal beantworten. Ich sehe es als Vorliebe von mir, habe aber auch meine Gründe. So erzeugt z.B. ein FeldOderParamter.AsString := '' (ja nach Komponenten) in der DB einen Leerstring anstatt null, was ich so nicht möchte. Ich habe halt auch viel mit Automatismen (Import, Export, Workflows etc.) zu schaffen, wo ich den Typ nicht unbedingt kenne. Und Value funktioniert bis jetzt mit den von mir verwendeten Komponenten immer korrekt. Auch kann in der DB den Feldtyp einfach mal ändern, ohne über Anpassungen im Code nachzudenken. Frank Reim |
AW: TDateTime und Timestamp
Zitat:
|
AW: TDateTime und Timestamp
Zitat:
Aber wenn ich in der DB in leeren VARCHAR - Feldern Null anstatt '' haben will, geht das halt nur mit Variants und Value. Auch wenn es Komponenten gibt, wo ich über z.B. BlankAsNull oder wie immer das benannt ist das Verhalten steuern kann... Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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 by Thomas Breitkreuz