Hallo,
ich habe eine
DB Tabelle mit einem AutoInc Integer Feld Namens ID.
Das nutzt in Firebird einen Generator, dessen Wert ich eigentlich mittels
SQL Manager auf 4 gesetzt habe, da ich damit schon 4 Einträge in die Tabelle
gemacht hatte.
Nur wenn ich mit unten stehender Methode meinen neuen Text reinschreiben will
knallt es, weil er ID auf 0 statt 4 oder 5 setzen will.
Eigentlich hab' ich den Code analog zu Code für andere Tabellen der
DB geschrieben
die auch AutoID Primärschlüssel haben und definitiv funktionieren. Hat jemand eine
Idee warum es da nicht klappt? Bzw. was kann ich noch testen?
Delphi-Quellcode:
procedure TMyTexts.SaveAddedText(Item: TMyText);
begin
if not Assigned(FInsertQuery) then
begin
FInsertQuery := FDataSetFactory.GetDataSet(true);
// Relevant, damit FireDAC beim Append später nicht wegen dem noch leeren
// Primärschlüssel meckert.
FInsertQuery.UpdateOptions.AutoIncFields := 'ID';
end;
FInsertQuery.Open('select ID, TEXT from MY_TEXTS');
FInsertQuery.Append;
FInsertQuery.FieldByName('TEXT').AsString := Item.Text;
FInsertQuery.Post;
Item.ID := FInsertQuery.FieldByName('ID').AsInteger;
end;