AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FireDac Master Detail Problem

FireDac Master Detail Problem

Ein Thema von burbetpappel · begonnen am 17. Apr 2015 · letzter Beitrag vom 5. Feb 2016
Antwort Antwort
burbetpappel

Registriert seit: 17. Apr 2015
Ort: Bitburg
5 Beiträge
 
Delphi XE2 Enterprise
 
#1

AW: FireDac Master Detail Problem

  Alt 20. Apr 2015, 07:26
Habe ich noch nicht getestet - mit der BDE und XE2 funktioniert es.

Werde es später mal testen.

Ich habe auch mal einen Button eingebaut (XE7 / FireDAC), der die Detailtabelle erst per Klick einschaltet. Wenn ich vor dem Einschalten auf einen Datensatz in der Mastertabelle navigiere, von dem ich weiß, dass hierzu auch ein Detailsatz existiert und dann einschalte funktioniert es. Wenn ich dann in der Mastertabelle scrolle, bis ich auf einen Datensatz stoße, für den kein Detailsatz existiert kommt die Exception wieder hoch - habe schon überlegt ein entsprechendes Exceptionhandling einzubauen - allerdings versuche ich erst mal einen evtl. existierenden "Schalter" zu finden, der das automatisch (analog BDE) macht. Ich kann mir nicht vorstellen, dass die Jungs, die die FireDAC (DAC) Komponenten programmiert haben, an so etwas alltägliches nicht gedacht haben sollen.



Grüße

Peter

Geändert von burbetpappel (20. Apr 2015 um 07:27 Uhr) Grund: fehlende Info
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FireDac Master Detail Problem

  Alt 20. Apr 2015, 08:39
Ich habe mal ein kleines Testprojekt in XE7 erstellt. Dein Fehler kommt nicht, aber das Programm funktioniert auch nicht wie gewünscht.
Es wird immer die identische ID gezogen und nicht das angegebene PK Feld (MASTER).
Ich habe die Detailtabelle zum Test auch mit UniDAC gemacht, hier funktioniert es.
Angehängte Grafiken
Dateityp: png FD_MD-1.png (32,7 KB, 23x aufgerufen)
Dateityp: png FD_MD-OI.png (33,3 KB, 21x aufgerufen)
Dateityp: png UD_MD-1.png (32,8 KB, 20x aufgerufen)
Dateityp: png FD_MD-2.png (32,8 KB, 20x aufgerufen)
Markus Kinzler

Geändert von mkinzler (20. Apr 2015 um 08:42 Uhr)
  Mit Zitat antworten Zitat
3rad

Registriert seit: 15. Apr 2011
Ort: Regensburg
8 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: FireDac Master Detail Problem

  Alt 16. Okt 2015, 15:56
Es wird immer die identische ID gezogen und nicht das angegebene PK Feld (MASTER).
Gibt es in FireDAC evtl. eine Option mit der man diese Einschränkung umgehen kann? Wir haben aktuell DOA und da ist das kein Problem.

Wir haben unsere DETAIL-SQL-Statements immer genau anders herum aufgesetzt
Beispielhafter-Constraint KUNDE.ID = RECHNUNG.V_KUNDE

Das zugehörige Detail-SQL Statement lautet:
select * from RECHNUNG where V_KUNDE=:V_KUNDE

In FireDAC müsste es so lauten. Anders hab ich die Master/Detail-Beziehung nicht hinbekommen.
select * from RECHNUNG where V_KUNDE=:ID

Ist das eine Einstellungssache in FireDAC?

Viele Grüße
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: FireDac Master Detail Problem

  Alt 16. Okt 2015, 16:36
Es wird immer die identische ID gezogen und nicht das angegebene PK Feld (MASTER).
Das klingt aber sehr nach
select * from t1 join t2 using (id) statt nach
select * from T1 left join t2 on (t1.id=t2.master) Kann man das irgendwo nachschauen?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
burbetpappel

Registriert seit: 17. Apr 2015
Ort: Bitburg
5 Beiträge
 
Delphi XE2 Enterprise
 
#5

AW: FireDac Master Detail Problem

  Alt 5. Feb 2016, 10:14
Hallo,

hatte das gleiche Problem, bei mir half es in der Query die Cursorart auf: dkForwardOnly zu setzen.

Grüße

Peter
Angehängte Grafiken
Dateityp: jpg Master Detail Delphi Cursorart.jpg (21,6 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
3rad

Registriert seit: 15. Apr 2011
Ort: Regensburg
8 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: FireDac Master Detail Problem

  Alt 19. Okt 2015, 15:54
Es wird immer die identische ID gezogen und nicht das angegebene PK Feld (MASTER).
In der FireDAC Doku steht der Satz:
"DetailFields wird nur beim Einfügen eines neues Datensatzes in eine Detaildatenmenge zum Zuordnen von bestimmten Feldwerten verwendet. In dem Mechanismus, mit dem die Datensätze der Detaildatenmenge gefiltert werden, wird DetailFields nicht verwendet."

Zum Filtern ist es also völlig egal was man dort einträgt. Zu finden unter Delphi Hilfe Indexsuche nach "FireDAC.Comp.Client.TFDQuery.DetailFields"
Das erklärt die Problematik.
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:10 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