Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Wo liegt mein Denkfehler ...

  Alt 13. Aug 2020, 14:58
Stell es dir im Delphi etwa so vor
Delphi-Quellcode:
function TStringField.AsString: string;
begin
  if IsNull then
    Result := ''
  else
    Result := Data;
end;

if field.AsString = 'then
und datenbankseitig wäre es dann ein
SQL-Code:
WHERE coalesce(field, '') = ''

-- oder andersrum
WHERE nullif(field, '') IS NULL





Dein Problem ist also, dass du dich mehr mit Boolescher Algebra beschäftigen solltest.
Wenn du die Operatoren umdrehst, dann ALLE.

if (archiv = '') or archiv.isnull then

ist invertiert
Delphi-Quellcode:
if not ((archiv = '') or archiv.isnull) then
// oder
if (not (archiv = '') and not archiv.isnull) then
// bzw.
if (archiv <> '') and not archiv.isnull then
aber ist nicht
Delphi-Quellcode:
if (archiv <> '') or not archiv.isnull then
//if (archiv <> '') or (archiv.isnull = false) then

Ich kenn auch Leute die drehen es außerhalb um, weil sie es innerhalb nicht können, oder es der Dokumentation/CodeSuche wegen nicht wollen.
Delphi-Quellcode:
if true then
  ...;

if false then
else
  ...;

if not (false) then // wobei man den eigentlichen Code ja nicht umformen muss ... umgeben geht auch
  ...;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (13. Aug 2020 um 15:20 Uhr)
  Mit Zitat antworten Zitat