Thema: Delphi nächste id im datensatz

Einzelnen Beitrag anzeigen

Benutzerbild von BrinkschulteManfred
BrinkschulteManfred

Registriert seit: 23. Sep 2003
Ort: Menden
97 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: nächste id im datensatz

  Alt 15. Sep 2005, 10:38
Hallo zusammen,

ich grüble nun schon seit ein paar Tagen an meinem Problem, dass ich an einer Fremd-DB ein paar Einträge an Stammdatentabellen ergänzen möchte. Die Fremdtabelle ist relativ einfach aufgebaut, es gibt dort eine ID und eine Einheitenspalte. Die ID-Spalte scheint eine AutoWert-Spalte zu sein, so dass ich inzwischen da angelangt bin, dass wohl ein IBDataSet mit dem Generatorfield zum Einsatz kommen muss.
Mein Code sieht folgendermaßen aus
Delphi-Quellcode:
procedure TFormEinheiten.Button1Click(Sender: TObject);
begin
  IBDataSetEinheiten.Insert;
  ShowMessage(IntToStr(IBDataSetEinheiten.FieldValues['ID']));
  IBDataSetEinheiten.Post;
  IBTransactionEinheiten.Commit;
  if Not(IBDataSetEinheiten.Active) then IBDataSetEinheiten.Active := True;
end;
Für die Eigenschaft InsertSQL habe ich
  • INSERT INTO EINHEITEN (EINHEIT) VALUES ('DUMMY Einheit')
und für die Eigenschaft Generatorfield habe ich
  • Generator = GEN_EINHEITENID
    Feld = ID
    erhöhen um = 1
    Ereignis anwenden = On Server
eingetragen. Alles funktioniert prächtig, es werden fortlaufend neue IDs vergeben. Leider kann ich aber damit nicht auf die ID zugreifen, die ich noch für anderen Einträge benötige. Stelle ich aber Ereignis anwenden auf On New Record, dann wird zwar bei ShowMessage die nächste ID angezeigt, aber in der Datenbanbk steht die übernächste ID. Im Moment weiß ich nicht, wo der Fehler liegen könnte. Was habe ich vergessen?

Gruß
Manfred

Anmerkung: Wenn Ereignis anwenden auf On Server steht, ist natürlich die ShowMessage-Zeile nicht da!
  Mit Zitat antworten Zitat