Einzelnen Beitrag anzeigen

guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#1

Problem mit Datefeld in DB, wenn Datum nicht vorhanden ist

  Alt 9. Jan 2008, 09:48
Datenbank: Absolute DB • Zugriff über: absQuery
Ich habe ein kleines Problem mit einem DATETIME Feld in einer DB.

Ich importiere die Feldinhalte aus einer Textdatei in die Datenbank. Unter anderem gibt es das Feld GWENDE, welches ein Datum enthält. In manchen Fällen enthält es jedoch auch keine Daten.

So füge ich die Daten in die DB ein. Die Übergabe der Daten erfolgt über den Record TP.

Delphi-Quellcode:
  TTP = record
    TPID: String;
    TPBEZ: String;
    KST: String;
    SAPNR: String;
    ANLNR: String;
    HERST: String;
    GWENDE: TDateTime;
    AUS: Boolean;
    LASTCH: TDateTime;
  end;

...

    SQL.Add('INSERT INTO TP VALUES(:PTPID,:PTPBEZ,:PKST,:PSAPNR,:PANLNR,:PHERST,:PGWENDE,:PAUS,:PLASTCH);');
    Params.ParamValues['PTPID']:=TP.TPID;
    Params.ParamValues['PTPBEZ']:=TP.TPBEZ;
    Params.ParamValues['PKST']:=TP.KST;
    Params.ParamValues['PSAPNR']:=TP.SAPNR;
    Params.ParamValues['PANLNR']:=TP.ANLNR;
    Params.ParamValues['PHERST']:=TP.HERST;
    Params.ParamValues['PGWENDE']:=TP.GWENDE;
    Params.ParamValues['PAUS']:=TP.AUS;
    Params.ParamValues['PLASTCH']:=TP.LASTCH;
Beim Auslesen der Daten aus der Textdatei muss ich dem Feld TP.GWENDE etwas zuweisen. Falls keine Daten vorhanden sind weise ich 0 zu, was dummerweise beim Auslesen der Daten aus der DB zu einem Datum von 30.12.1899 führt, klar. Jetzt könnte ich das natürlich einfach optisch kaschieren und bei der Anzeige im Falle von diesem Datum nichts anzeigen, aber das gefällt mir nicht so ganz. Ich hätte lieber, dass das Feld in der DB einfach leer ist. Aber mir fällt nicht ein wie ich dass hinkriege.

Jemand ne Idee? Danke!
  Mit Zitat antworten Zitat