Bei leerem Edit.Text wird qry.FieldByName('Nummer').AsString := Edit.Text eher als Leerstring in der
DB landen als als Null.
Zumindest bei einem TIntegerField wird es das eben nicht. Dort wird in SetAsString explizit ein Clear aufgerufen wenn der String leer ist. Das setzt allerdings voraus, dass in der Datenbank auch wirklich ein Integer Feld steht und kein String Feld. Aber das entnehme ich auch so der bisherigen Beschreibung.
Du hast recht, bei 'nem Stringfeld in der
DB wird qry.FieldByName('Nummer').AsString := Edit.Text eher als Leerstring in der
DB landen als als Null.
Aber bei nummerischen Feldern in der
DB ist dort ja letztlich auch kein Leersting in der
DB möglich, also muss da "irgendwas anderes für das Feld passendes" gefunden werden. Und das ist bei Integer ... halt leider nicht Null sondern 0. Und damit sind wir dann bei unserem Ursprungsproblem.