Und wenn du die gleiche SQL-Anweisung im STRSQL ausführst (natürlich mit den gleichen Werten wie in den Hostvars und der Where...) wird ein NULL geschrieben??

Das klingt für mich schon sehr mystisch.

Führe mal dein Programm im Debug aus und setze einen Breakpoint gleich direkt nach der UPDATE-Anweisung.
Schau dann nach dem Update in der Tabelle nach ob ein NULL drinnen steht. Danach lass das PGM zu ende laufen.

Entweder hast du wirklich noch irgendwo was (Default-Values in der Tabelle, Trigger, andere Programme die zusätzlich ausfgeführt werden etc.) oder das ist ein Bug.