Announcement

Collapse
No announcement yet.

Bug in Master/Detail-Beziehungen in D5 mit persistenten Feldern??

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

  • Bug in Master/Detail-Beziehungen in D5 mit persistenten Feldern??

    In einer Master-/Detailbeziehung mit persistenten Feldern zweier TQuery-Objekte in D5 (Detailtabelle ueber Parameter an Masterquery gebunden), werden die an die Detailquery gebundenen visuellen Objekte wie TDBEDIT, TDBMEMO, TDBTEXT nach einem Datensatzwechsel im Master nicht aktualisiert, es wird immer der Inhalt des ersten Datensatzes angezeigt. Entfernt man jedoch die persistenten Felder der Detailquery funktioniert alles. Die Komponente TDBGRID ist davon nicht betroffen.
    Bug oder Feature und wie kann man das loesen (in D3 alles OK)??

    Frank Tonert

  • #2
    Hallo,

    das ist ein (von Borland bestätigter) Bug von Delphi 5, für den es bereits einen Bug-Fix auf Soucecode-Ebene gibt. In der VCL-Unit <b>DBCtrls.pas</b> muss die Implementierung von <i>TFieldDataLink.UpdateField</i> geändert werden:

    Fehlerhafte Version:
    <pre>
    procedure TFieldDataLink.UpdateField;
    begin
    if Active and (FFieldName <> '') then
    begin
    if Assigned(FControl) then
    SetField(GetFieldProperty(DataSource.DataSet, FControl, FFieldName)) else
    SetField(DataSource.DataSet.FieldByName(FFieldName ));
    end else
    SetField(nil);
    end;
    </pre>

    Neue Version (Bug-Fix):
    <pre>
    procedure TFieldDataLink.UpdateField;
    begin
    SetField(nil);
    if Active and (FFieldName <> '') then
    begin
    if Assigned(FControl) then
    SetField(GetFieldProperty(DataSource.DataSet, FControl, FFieldName)) else
    SetField(DataSource.DataSet.FieldByName(FFieldName ));
    end
    end;
    </pre>

    Im angekündigten UpdatePack für Delphi 5 wird dieser Fehler mit beseitigt

    Comment


    • #3
      Alles wieder bestens, vielen Dank

      Comment

      Working...
      X