Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Null als Parameter übergeben klappt nicht (https://www.delphipraxis.net/131842-null-als-parameter-uebergeben-klappt-nicht.html)

Texas 1. Apr 2009 04:29

Datenbank: dBase • Version: Visual • Zugriff über: BDE

Null als Parameter übergeben klappt nicht
 
Hallo,
ich erzeuge mir aus einer Auftrags DB eine Arbeitsliste. In Diese trage ich dann die erledigten Aufträge mit dem Datum der Fertigstellung ein. Jetzt möchte ich die Auftrags DB aktualisieren sprich das Datum der Fertigstellung in die Auftrags DB schreiben. Dazu übergebe ich das Datum als Parameter an eine Query. Das klappt auch solange ein Datum eingetragen ist.
Wenn aber noch kein Datum eingegeben wurde dann schreibt die Query den 31.12.1899 in das FERTIG Feld. :gruebel: Wenn ich aber versuche einen null Parameter zu übergeben dann gibt es die Fehlermeldung NULL ist auf Datumsfeld nicht zulässig


Delphi-Quellcode:
var s : String;
    aufnr : Integer;

.........
Auftragsliste.first;
while not Auftragsliste.eof do begin
  s := datetostr(AuftragslisteFertig);
  aufnr := AuftragslisteAuftragNr;
  ........
  whith query1 do begin
    sql.clear;
    sql.add('update "AUFTRAG.DBF" set FERTIG = :FERTIG where AUFTRAGSNR = :AUFTRAGSNR');
    ParamByName('FERTIG').AsString := ''''+trim(S)+'''';
    ParamByName('AUFTRAGSNR').AsInterger := aufnr;
    ExecSQL;
  end;
  Auftragsliste.next;
end;
in Delphi 5 gab es bei den Parameter'n noch AsVariant
Delphi-Quellcode:
if trim(s) > '' then
  ParamByName('FERTIG').AsString := ''''+trim(S)+''''
else
  ParamByName('FERTIG').AsVariant := NULL;
oder gibt es das auch noch in D7 und ich habe vergessen eine Unit einzubinden ?
Gruß Texas

mkinzler 1. Apr 2009 05:36

Re: Null als Parameter übergeben klappt nicht
 
Value ist vom Typ Variant

Delphi-Quellcode:
  ParamByName('FERTIG').Value

alex517 1. Apr 2009 07:28

Re: Null als Parameter übergeben klappt nicht
 
Delphi-Quellcode:
if trim(s) > '' then
  ParamByName('FERTIG').AsString := ''''+trim(S)+''''
else
  ParamByName('FERTIG').Clear; // <---
alex

hoika 1. Apr 2009 12:16

Re: Null als Parameter übergeben klappt nicht
 
Hallo,

das Variant gibt es immer noch.

Einfach mal in die IDE eintippen und STRG+F1,
In der Hilfe steht die benötigte Unit.

Die Unit müsste *Trommelwirbel* Variants sein.


Edit: OK, der Unit-Name ist schwer zu finden in der Hilfe.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 Uhr.

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