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
Announcement
Collapse
No announcement yet.
Master-Detail-Problem
Collapse
X
-
Hallo,
>Wenn ich einen Datensatz in der Detail-Tabelle hinzufüge, dann bekommt das Feld "ID" <br>
>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