![]() |
Datenbank: ÚNIFY (Gupta) • Version: 11.5 • Zugriff über: ODBC
FireDac Master Detail Problem
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 |
AW: FireDac Master Detail Problem
Das sollte auch das Verhalten bei allen Zugriffskomponenetn sein. Der Fehler scheint allerdings vom ODBC-Treiber zu kommen. Bei FireDAC sollte das eigentlich funktionieren.
|
AW: FireDac Master Detail Problem
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. |
AW: FireDac Master Detail Problem
Wo ist denn dokumentiert, dass FireDac Gupta unterstützt?
|
AW: FireDac Master Detail Problem
Dazu gibt es ja den ODBC Treiber
=> FireDAC => ODBC (OpenDatabaseConnectivity) => Gupta |
AW: FireDac Master Detail Problem
Funktioniert es direkt mit den ADO-Komponenten (dbGo)?
|
AW: FireDac Master Detail Problem
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 |
AW: FireDac Master Detail Problem
Liste der Anhänge anzeigen (Anzahl: 4)
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. |
AW: FireDac Master Detail Problem
Zitat:
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 |
AW: FireDac Master Detail Problem
Zitat:
Delphi-Quellcode:
statt nach
select * from t1 join t2 using (id)
Delphi-Quellcode:
Kann man das irgendwo nachschauen?
select * from T1 left join t2 on (t1.id=t2.master)
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 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 by Thomas Breitkreuz