AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CalcField und Null

Ein Thema von himitsu · begonnen am 6. Nov 2014
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#1

CalcField und Null

  Alt 6. Nov 2014, 17:25
Datenbank: Postgres • Version: x • Zugriff über: PgDAC
Moin,

Wer ist eigentlich auf die saublöde Idee gekommen, daß man CalcFields nicht leeren darf? (natürlich alles im OnCalcField)

Bevor das Erste mal was reingeschrieben wird, ist es ja auch schoneinmal Null, dann kann man beliebig alles Mögliche reinschreiben, aber leer bekommt man es nicht mehr.


Field.Clear; geht nicht, da
Delphi-Quellcode:
procedure TField.Clear;
begin
  if FieldKind in [fkData, fkInternalCalc] then
    SetData(nil);
end;
Und es ist auch nirgends überschrieben. (außer bei Blobs)

Auch die Idee ein Null an AsVariant oder Value zu übergeben geht nicht, da
Delphi-Quellcode:
procedure TField.SetAsVariant(const Value: Variant);
begin
  if VarIsNull(Value) then
    Clear
  else
    ...



Ich tausche jetzt das Field.Clear; gegen ein Field.SetData(nil) (da dieses zur Abwechslung mal nicht private ist) und hoffe es knallt dann nirgendwo.
(wir haben eh demnächst vor alle benutzten TField-Typen abzuleiten und dann würde dort das Clear überschrieben)



Weiß zufällig jemand, warum man das so gemacht hat?

Einen Bugfix für XE erwarten wir eh nicht mehr, aber wir würden gern wissen warum das so ist. Hatten ja schon Andere das Problem (laut Google), aber eine Antwort fanden wir da nie.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 6. Nov 2014 um 18:10 Uhr)
  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 00:17 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