Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   TDateTime und Timestamp (https://www.delphipraxis.net/201350-tdatetime-und-timestamp.html)

dataspider 15. Jul 2019 11:45

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

Codehunter 15. Jul 2019 11:56

AW: TDateTime und Timestamp
 
Zitat:

Zitat von dataspider (Beitrag 1436763)
So erzeugt z.B. ein FeldOderParamter.AsString := '' (ja nach Komponenten) in der DB einen Leerstring anstatt null, was ich so nicht möchte.

Was IMHO ein völlig korrektes Verhalten ist. Möchte man ein NULL, sollte man explizit TField.Clear verwenden. Bedenke, es kann ja z.B. ein VARCHAR() NOT NULL Feld sein, wo man dennoch einen Leerstring zuweisen könnte. Oftmals ist das bei den neueren Edeldödel-Konnektoren so gelöst, dass man besagtes Verhalten durch irgendwelche Connection-Parameter beeinflussen kann.

dataspider 15. Jul 2019 12:24

AW: TDateTime und Timestamp
 
Zitat:

Zitat von Codehunter (Beitrag 1436765)
Was IMHO ein völlig korrektes Verhalten ist. Möchte man ein NULL, sollte man explizit TField.Clear verwenden. Bedenke, es kann ja z.B. ein VARCHAR() NOT NULL Feld sein, wo man dennoch einen Leerstring zuweisen könnte. Oftmals ist das bei den neueren Edeldödel-Konnektoren so gelöst, dass man besagtes Verhalten durch irgendwelche Connection-Parameter beeinflussen kann.

Damit hast du völlig recht.

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 13:31 Uhr.
Seite 2 von 2     12   

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