Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Verständnisfrage Insert Into Datum mit Eigenschaft Text (https://www.delphipraxis.net/101441-verstaendnisfrage-insert-into-datum-mit-eigenschaft-text.html)

muenster 13. Okt 2007 12:04

Datenbank: Firebird • Version: 2.03 • Zugriff über: ZEOSLib 6.6.1

Verständnisfrage Insert Into Datum mit Eigenschaft Text
 
Hi,

hier im Forum wird die Übergabe von SQL Statements mittels der Eigenschaft Text empfohlen. Funktioniert bei mir auch sehr gut, allerdings habe ich ein Problem:

Bei der Übergabe von Daten aus einer Paradoxtabelle sind in den Datensätzen leere Datumsfelder enthalten. Diese müssen auch leer bleiben.

Ich die Daten mittels der Eigenschaft Text und Parametern in die Firebird Tabelle geschrieben und die Daten kommen richtig (und damit falsch) in der Firebird Tabelle an.

Das leere Datumsfeld hat in Firebird den Wert 31.12.1899. Ist auch richtig denn ein ISERT INTO mit '' führt eben zu diesem Wert.

Wie kann ich den Wert null (im direkten Zugriff über Admin Tools null ohne Hochkomma geht es) so als Parameter übergeben, dass die Eigenschaft Text den Wert null ohne Hochkomma übergibt?

Der entsprechende Parameter wird von einer Variable Typ TDateTime gefüllt.

Viele Grüße

Karsten

DeddyH 13. Okt 2007 12:10

Re: Verständnisfrage Insert Into Datum mit Eigenschaft Text
 
Der 31.12.1899 hat den Wert 0 und nicht NULL.

muenster 13. Okt 2007 12:16

Re: Verständnisfrage Insert Into Datum mit Eigenschaft Text
 
Ja

und genau da liegt das Problem.

Gruß Karsten

DeddyH 13. Okt 2007 12:23

Re: Verständnisfrage Insert Into Datum mit Eigenschaft Text
 
Du liest die Werte aus Paradox in einen String ein, habe ich das richtig verstanden? Ein wenig Code wäre ganz hilfreich.

muenster 13. Okt 2007 12:33

Re: Verständnisfrage Insert Into Datum mit Eigenschaft Text
 
Hi,

ein kurzes Schnipsel

Delphi-Quellcode:
//Auslesen aus Query über Paradox-Tabelle

with query1 do
begin
 Datum_Ende := query1.FeldDatum_Ende.AsDate;//Variable Datum_Ende : TDateTime
end;
FeldDatum_Ende ist in der Paradox leer, d. h. es wurde -und wird zunächst kein Wert eingetragen.

Bei INSERT INTO wird mittels Param.ParamsByName Datum_Ende zugewiesen.

Solange Datum_Ende nicht leer, also ein gültiges Datum führt, läuft alles richtig. Nur eben leere Datumsfelder werden mit 0 oder wie ich vermute mit'' übergeben.

Muss ich letzt doch mittels if Abfrage und SQL.Add arbeiten?

Gruß

Karsten

DeddyH 13. Okt 2007 12:38

Re: Verständnisfrage Insert Into Datum mit Eigenschaft Text
 
Du könntest auf IsNull abfragen und dann mit Clear ggf. auf NULL setzen. Näheres in der Hilfe zu TParam bzw. TField.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 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