Ein zweiter Test:
Delphi-Quellcode:
Kunden.Insert;
Kunden.FieldByName('KdNr').AsInteger := 123;
Kunden.FieldByName('Name').AsString := 'Schneider';
Kunden.Post;
OldRecNo := Kunden.RecNo;
Transaction.Commit;
Kunden.Active := true;
Kunden.RecNo := OldRecNo;
Kunden.Edit;
Kunden.FieldByName('Firma').AsString := 'EineFirma';
Kunden.Post;
Nun sind die Änderungen zwar nach Programmende vorhanden. Es ergeben sich aber zwei neue Probleme: Das ganze sind nun zwei Transaktionen. Ich möchte aber nur eine haben, da es entwender komplett oder gar nicht eingetragen werden soll. OK, zur not könnte ich damit leben, wenn es gar nicht änders geht, aber schön ists nicht. Problem zwei: Den ausgewälten Datensatz über die RecNo wiederzufinden ist fehleranfällig, weil sich nach dem Commit die RecNo geändert haben könnte, wenn ein anderer User einen neuen Datensatz in die
DB einfügt. Wie kann ich denn den vor Commit ausgewählten Datensatz nach dem Commit mit 100%iger Sicherheit wieder anspringen?