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
...;