Einzelnen Beitrag anzeigen

Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Wie AutoInc-Feld bei In-place-editing (TDBGrid) handhaben

  Alt 11. Mär 2012, 21:50
Datenbank: Firebired • Version: 2.5 • Zugriff über: IBX
Hallo DPler,

ich hab ein Problem beim in-place editieren im DBGrid bei einer Master-Detail-Beziehung.
Wenn ich im Master-DBGrid (Tabelle heißt "Species") einen neuen Eintrag über den Inplace Editor anlege und im zweiten Grid (Tabelle heißt "Breed") einen neuen Datensatz anlege hab ich das Problem das der Wert des "ID"-Feldes des Master-Datasets "Species" noch nicht verfügbar ist.
Wie handhabe ich soetwas in Delphi 7?

Meine Versuch im Details bisher:

Als Dataset verwende ich TIBDataset, zur Anzeige das TDBGrid und bei den "ID"-Feldern beider Tabellen habe ich "AutoGenerateValue" auf "arAutoInc" (und bei "ProviderFlags" "pfInKey") gesetzt. Im OnBeforePost-Ereignis des Detail-Dataset versuche ich nun folgendes wobei "ibdsSpecies.FieldByName('ID').AsInteger" "0" ist:

Delphi-Quellcode:
procedure TPmEdit.ibdsBreedBeforePost(DataSet: TDataSet);
begin
  DataSet.FieldByName('SpeciesID').AsInteger :=
    ibdsSpecies.FieldByName('ID').AsInteger;
end;

Vielen Dank für eure Hilfe
  Mit Zitat antworten Zitat