![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: AnyDAC
AnyDAC Query mit Join aktualisiert die Felder aus Join Table nicht
Hallo Zusammen,
die Anforderung vorab: Ich benötige eine Möglichkeit die Felder in einem Join einer TADQuery zu aktualisieren ohne ein Post der Query durchführen zu müssen, wenn etwa die Adresse angezeigt werden soll. Ich habe eine TADQuery mit dem Select als Beispiel:
Code:
Ich füge einen neuen Datensatz und übergebe dem Feld B.ADRESSID eine gültige ADRESSID.
SELECT B.BELEGID
, B.BELEDATUM , B.ADRESSID , A.FIRMA , A.STRASSE , A.PLZ , A.ORT FROM BELEG B JOIN ADRESSEN A on (A.ADRESSID = B.ADRESSID) Jetzt würde ich gerne irgendwie die Adresse aktualisieren, ohne ein Post der Query durchführen zu müssen da noch weitere required Felder vorhanden sind die noch kein Wert haben. Selbst nach dem Post werde die Felder nicht aktualisiert. Ich muss ein Refresh durchführen. Danach sind alle Felder sichbar. Der AnyDAC-Support meinte, das automatische aktualisieren der Felder wird nicht unterstützt. Ich soll mir TADUpdateSQL FetchRowSQL anschauen. Das habe ich gemacht, doch leider ohne Erfolg. Ich habe alles möglich ausprobiert für FetchRowSQL nichts hat funktioniert. Weis jemand wie FetchRowSQL funktioniert? Gruß Kostas |
AW: AnyDAC Query mit Join aktualisiert die Felder aus Join Table nicht
Es ist immer ein Problem eine gejointe Datenmenge zu aktualisieren.
Denn für die Datenbank gibt es nur die Operationen INSERT, UPDATE und DELETE und diese beziehen sich immer auf genau eine Tabelle. Dein Problem besteht nicht nur bei AnyDAC sondern es ist ganz grundsätzlicher Art. Das hat auch Konsequenzen auf die Benutzeroberfläche und darauf wie die Benutzer arbeiten müssen. Das Anlegen/Ändern von Adressen ist getrennt von dem Erfassen von Belegen. Bevor der Benutzer einen Beleg abspeichern kann benötigt er eine Adresse, denn es besteht eine 1:N Beziehung zwischen Adressen und Belegen. Man muss den Benutzer so führen, dass er zuerst eine bestehende Adresse auswählt oder eine bestehende Adresse korrigiert oder eine neue Adresse anlegt. Erst danach darf er die Belege dazu eingeben. |
AW: AnyDAC Query mit Join aktualisiert die Felder aus Join Table nicht
Zitat:
Wenn die Adresse zuerst ausgewehlt wird und sie Teil eines Joins ist, wird die Anzeige nicht aktualisiert. Das was mich dabei stört ist, sie wird auch nach einem post nicht aktualisiert! Erst nach einem Refresh. Die IBO Komponenten lösen dieses Problem. Die haben ein property RefreshAfterPost. In IBO gibt es auch ein PostRetaining so quasie "ein bischen Posten" :-) Bei PostRetaining wird die Datenmenge vom Server abgerufen und somit werden auch die Jonings aktualisiert der State ist immer noch bei dsInsert. AnyDAC macht möglicherweise auch was in dieser Richtung. Der Hinweis von Dmitry mit dem TADUpdateSQL FetchRowSQL würde mich interessieren. Wie kann ich FetchRowSQL einsetzen? Hast du das schon mal gemacht? Gruß Kostas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz