Announcement

Collapse
No announcement yet.

Master-Detail-Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Master-Detail-Problem

    Hallo Entwickler!<p>Mal wieder ein neues Problem:<p>Ich habe eine Master-Tabelle (TIBDataset: TabMaster) und eine Detail-Tabelle (TIBDataset: TabDetail, verbunden über eine TDatasource) der SQL von TabMaster sieht so aus: "SELECT * FROM MasterTab" (nur wenige Datensätze) und der von TabDetail: "SELECT * FROM DetailTab WHERE MasterID = :ID" Jedes dieser beiden Tabellen hat ein Feld Namens "ID" was auch gleich der Primär-Schlüssel ist und per Generator gefüllt wird (über TIBDataset bei neuem Satz). Nun tritt folgendes Problem auf: Wenn ich einen Datensatz in der Detail-Tabelle hinzufüge, dann bekommt das Feld "ID" von TabDetail den Wert aus dem Feld "ID" von TabMaster !?!?!? Das Problem konnte ich lösen indem ich ein berechnetes Feld zu TabMaster mit Namen "MASTERID" hinzugefügt hatte und den SQL von TabDetail auf "SELECT * FROM DetailTab WHERE MasterID = :MASTERID". Ist das ein Fehler in IBX? Ich verwende IBX 5.03 mit Delphi 5 SP1.<p>Danke und Gruss Andreas Brück

  • #2
    Hallo,

    &gt;Wenn ich einen Datensatz in der Detail-Tabelle hinzufüge, dann bekommt das Feld "ID" <br>
    &gt;von TabDetail den Wert aus dem Feld "ID" von TabMaster !?!?!?

    dieses Verhalten wird von IBX 5.03/6.03 neu eingeführt (siehe die Readme.txt vom IBX-Update 5.03) und ist offiziell kein Bug, sondern ein von vielen gewünschtes Feature. Die Detail-Datensätze kopieren nun die Master-Parameter bei einem INSERT in die eigenen Felder, wenn die Bedingung: <b>Master-Feldname = Parameter-Name = Detail-Feldname</b> eingehalten wird. Über die Vergabe von geeigneten Parameter- und Spalten-Namen hat man somit die Kontrolle über das Verhalten zur Laufzeit

    Comment


    • #3
      Das finde ich aber nicht so doll. Man kann das doch auch über das AfterInsert-Ereignis erreichen. Aber was solls. Danke für die Hilfe.<p>Gruss Andreas Brüc

      Comment

      Working...
      X