AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DateTime über ParamByName auf NULL setzen?
Thema durchsuchen
Ansicht
Themen-Optionen

DateTime über ParamByName auf NULL setzen?

Ein Thema von Byteteufel · begonnen am 31. Okt 2016 · letzter Beitrag vom 22. Jan 2019
Antwort Antwort
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 14:40
Eventuell auch mal in die Tabellendefinition der DB guggen. Kann sein, das da ein Default-Wert angegeben wurde. Wenn ja musst du die Tabellendefinition anpassen, sonst kannst du da löschen
wie du willst
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Byteteufel

Registriert seit: 20. Sep 2012
13 Beiträge
 
#2

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 19:29
Hallo zusammen,

danke für die Antworten. Nun brat mir einer einen Storch. Wenn ich NULL definieren will. NULL ist ein Undeklarierter Bezeichner???
Muss ich da eine spezielle Unit einbinden? Ich nutze Delphi Seattle.

Danke!

Viele Grüße

Axel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 19:33
Ist in der Unit Variants deklariert. Aber wie schon beschrieben besser mit .Clear setzen und mit .isNull abfragen.
Markus Kinzler
  Mit Zitat antworten Zitat
Byteteufel

Registriert seit: 20. Sep 2012
13 Beiträge
 
#4

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 20:11
Ist in der Unit Variants deklariert. Aber wie schon beschrieben besser mit .Clear setzen und mit .isNull abfragen.

Hast Du dazu ein Beispiel, wie es aussehen sollte? Ich bekomme da immer einen Fehler. Mir ist der Aufruf nicht klar.

Danke

Gruß

Axel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 20:13
Delphi-Quellcode:
 if getBeginDatum > 'then // Datum ist String
     DBQuery.ParamByName('P_BeginDatum').AsString := getBeginDatum
     else
     DBQuery.ParamByName('P_BeginDatum').Clear;
Markus Kinzler
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 20:14
ganz einfach:

Delphi-Quellcode:
//setzen
DBQuery.ParamByName('P_BeginDatum').clear;

//abfragen:
if DBQuery.ParamByName('P_BeginDatum').isNull then
begin
// was auch immer
end;
Fritz Westermann
  Mit Zitat antworten Zitat
Byteteufel

Registriert seit: 20. Sep 2012
13 Beiträge
 
#7

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 20:26
ganz einfach:

Delphi-Quellcode:
//setzen
DBQuery.ParamByName('P_BeginDatum').clear;

//abfragen:
if DBQuery.ParamByName('P_BeginDatum').isNull then
begin
// was auch immer
end;
Ok, wenn ich es so mache bekomme ich einen Fehler.

Vielleicht habe ich nicht klar mein Problem ausgedrückt. Wenn der Anwender kein Datum eingibt, soll auch keins gespeichert werden. Es erscheint aber bei einem leerem Datum 01.01.1900 in der Datenbank.

Delphi-Quellcode:
 if getBeginDatum > 'then
     DBQuery.ParamByName('P_BeginDatum').AsString := getBeginDatum
     else
     DBQuery.ParamByName('P_BeginDatum').Clear;
Wenn ich also auf .isNull abfrage, wüßte ichnicht was ich dort als Wert mitgeben soll. Nur die Clear-Anweisung bringt den Fehler in der Anlage.

Grüße

Axel
Angehängte Grafiken
Dateityp: jpg _F2.JPG (27,8 KB, 12x aufgerufen)
Dateityp: jpg _F1.JPG (11,3 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 20:32
Beim Clear dürfte der Fehler in auftauchen, es schadet aber auch nicht, wenn man den Anweisungen in der Fehlermeldung folgt, die ja sagt, dass der Parameter keinen typ hat und man einen setzten soll!

Der Grund für den falschen Wert wurde Dir zudem schon in #6 genannt.
Markus Kinzler
  Mit Zitat antworten Zitat
Byteteufel

Registriert seit: 20. Sep 2012
13 Beiträge
 
#9

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 19:38
Halo zusammen,

Ok, die Unit "Variants" musste ich noch einbinden, dann war NULL möglich.

Delphi-Quellcode:
 if getBeginDatum > 'then
     DBQuery.ParamByName('P_BeginDatum').AsString := getBeginDatum
     else
     DBQuery.ParamByName('P_BeginDatum').Value := NULL;
bringt den Fehler:
Angehängte Grafiken
Dateityp: jpg FDDB1.JPG (29,6 KB, 30x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: DateTime über ParamByName auf NULL setzen?

  Alt 1. Nov 2016, 19:44
In der fehlermeldung steht eigentlich genau der Grund. Aber wenn dir hier öfters gesagt wird, die Methode Clear zu verwenden, dann hben wir uns schon etwas dabei gedacht!
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 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