Einzelnen Beitrag anzeigen

Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#1

FIBPlus, Master/Detail und ForeignKeys

  Alt 10. Dez 2013, 17:06
Datenbank: Firebird • Version: 2.1 • Zugriff über: FIBPlus
Hallo liebe Community,

folgende zwei Tabellen zum Rechnungshandling.

Code:
Rechnung
  id INT64
  datum TIMESTAMP

Rechnungsposition
  id INT64
  rechnung INT64
  bezeichnung VARCHAR(30)
Im DataFormular habe ich nun zwei TpFIBDataset, welche per Master-Detail-Beziehung verbunden sind. Das Anlegen einer Rechnung geschieht nun folgendermaßen:

1. TRechnungDataset.Insert;
( das TDataset ist so konfiguriert, dass bei Ausführen von Insert eine neue ID aus einer Sequence geholt wird und intern schon dem keyfield id zugewiesen wird)
2a. Positionen hinzufügen mit TRechnungPositonDataset.Insert
2b. Durch die MasterDetail-Beziehung wird das Feld rechnung in der Position jetzt mit der ID aus dem Master befüllt
2c. TRechnungPositionDataset.Post
3. TRechnungDataset.Post

Hierbei kann man Schritt (2) beliebig oft wiederholen.

Das ganze funktioniert auch wunderbar - BIS man in der Datenbank eine referentielle Integrität zwischen dem Feld Rechnungsposition.Rechnung und dem Feld Rechnung.Id herstellen möchte. Dann knallt es im Punkt 2c - da die Mastertabelle noch gar nicht gepostet wurde.

Wie würde man den workflow oben designen müssen, um referentielle Integrität nutzen zu können?
  Mit Zitat antworten Zitat