AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken AnyDAC Query mit Join aktualisiert die Felder aus Join Table nicht
Thema durchsuchen
Ansicht
Themen-Optionen

AnyDAC Query mit Join aktualisiert die Felder aus Join Table nicht

Ein Thema von Kostas · begonnen am 5. Feb 2013 · letzter Beitrag vom 5. Feb 2013
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AnyDAC Query mit Join aktualisiert die Felder aus Join Table nicht

  Alt 5. Feb 2013, 16:10
Datenbank: Firebird • Version: 2.5 • Zugriff über: AnyDAC
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:
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)
Ich füge einen neuen Datensatz und übergebe dem Feld B.ADRESSID eine gültige 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
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: AnyDAC Query mit Join aktualisiert die Felder aus Join Table nicht

  Alt 5. Feb 2013, 17:36
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.
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: AnyDAC Query mit Join aktualisiert die Felder aus Join Table nicht

  Alt 5. Feb 2013, 17:59
...
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.
Ja, das ist mir auch bekannt und so arbeite ich auch schon seit mehreren Jahren.
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz