Irgendwie ist mein Beitrag noch nicht richtig angekommen.
Wenn man einen Datensatz in ein TDataset (bzw. TAdoTable oder TAdoQuery) einfügt,
dann kennt nur der Datenbankserver die neue AutoInc-ID.
Im Dataset sind alle Feldwerte bekannt, denn man hat sie ja selbst vor dem Aufruf von
Post
befüllt,
nur das AutoInc-Feld ist leer.
Dummerweise hat das Primärschlüsselfeld das Attribut
Required; d.h. das Feld muss einen Wert <> NULL haben.
Einerseits ist das PK-Feld für den neuen Datensatz leer und andererseits darf es nicht leer sein.
Man muss einfach akzeptieren, dass AutoInc-Felder für manche Anwendungszwecke "böse" sind.
Wie gesagt, wenn man einfach nur die Daten in die
DB schreibt nach dem Prinzip "fire and forget", dann sind AutoInc-Felder ok.
Wenn man aber anzeigen möchte, was man gerade eingefügt hat, dann geht das nur mit Klimmzügen.
Es hat auch nichts mit
ADO zu tun, sondern das Problem ist ganz grundsätzlicher Art.