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
Seite 1 von 2  1 2   
burbetpappel

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

FireDac Master Detail Problem

  Alt 17. Apr 2015, 10:42
Datenbank: ÚNIFY (Gupta) • Version: 11.5 • Zugriff über: ODBC
Hallo zusammen,

folgendes Problem:

Ich habe bisher immer (noch) die gute alte BDE benutzt - hiermit waren Master/Detail Beziehungen ein Kinderspiel.
Nun habe ich mir Delphi XE7 zugelegt und muss gezwungenermaßen auf FireDAC umstellen.

nun zum Problem:

Ich habe eine Master und eine Detailtabelle - diese sind auch, denke ich, richtig verbunden. Wenn ich aber nun die Detailtabelle aktivieren möchte, bekomme ich folgende Fehlermeldung:

"Exception EODBCNativeException in Modul AuftragsanalyerV2.exe bei 0025546E. [FireDAC][PHYS][ODBC][UNIFY][ODBC Driver][SQLBASE]00127
SQL NCR Cursor identified in the SQL command is not positioned on a row.

Ich denke ich weiß, warum die Meldung kommt, weiß aber nicht, wie ich sie abschalten kann.
In der Mastertabelle gibt es eine ID, für die es in der Detailtabelle keine Daten gibt - in der Detailtabelle kann also für diese ID nichts gefunden werden - die BDE Komponenten haben dies immer ignoriert und einfach ein leeres DBGRID für die Detailmenge dargestellt.

Wie bekomme ich das auch mit den Firedac Komponenten hin?

Grüße

Peter

Geändert von burbetpappel (17. Apr 2015 um 10:58 Uhr) Grund: Rechtschreibfehler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.802 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: FireDac Master Detail Problem

  Alt 17. Apr 2015, 12:23
Das sollte auch das Verhalten bei allen Zugriffskomponenetn sein. Der Fehler scheint allerdings vom ODBC-Treiber zu kommen. Bei FireDAC sollte das eigentlich funktionieren.
Markus Kinzler
  Mit Zitat antworten Zitat
burbetpappel

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

AW: FireDac Master Detail Problem

  Alt 17. Apr 2015, 13:46
Hallo,

ich habe mal auf die Schnelle mein "altes" Delphi Xe2 geschnappt und die Anwendung mit der BDE nachgebaut - derselbe ODBC-Treiber.
Hier entsteht das Problem nicht - der ODBC Treiber scheidet also als Fehlerquelle aus.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.347 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: FireDac Master Detail Problem

  Alt 17. Apr 2015, 14:14
Wo ist denn dokumentiert, dass FireDac Gupta unterstützt?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  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 17. Apr 2015, 14:43
Dazu gibt es ja den ODBC Treiber
=> FireDAC => ODBC (OpenDatabaseConnectivity) => Gupta
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.802 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: FireDac Master Detail Problem

  Alt 17. Apr 2015, 15:10
Funktioniert es direkt mit den ADO-Komponenten (dbGo)?
Markus Kinzler
  Mit Zitat antworten Zitat
burbetpappel

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

AW: FireDac Master Detail Problem

  Alt 20. Apr 2015, 08: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 08:27 Uhr) Grund: fehlende Info
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.802 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: FireDac Master Detail Problem

  Alt 20. Apr 2015, 09: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.
Miniaturansicht angehängter Grafiken
fd_md-1.png   fd_md-oi.png   ud_md-1.png   fd_md-2.png  
Markus Kinzler

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

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

AW: FireDac Master Detail Problem

  Alt 16. Okt 2015, 16: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.658 Beiträge
 
Delphi 7 Personal
 
#10

AW: FireDac Master Detail Problem

  Alt 16. Okt 2015, 17: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
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 10:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf