Einzelnen Beitrag anzeigen

bluesky70

Registriert seit: 26. Apr 2007
35 Beiträge
 
Delphi XE5 Enterprise
 
#1

Master-/Detailverbindung bei Zugrifff auf temporäre Tabellen in FireBird mit FireDAC

  Alt 2. Sep 2014, 12:50
Datenbank: Firebird • Version: 2,5 • Zugriff über: Firedac
Hallo,

ich habe folgendes Problem und hoffe, jemand hat einen Tipp:

Ich baue eine Verbindung über FireDAC auf eine Firebird 2.5 Datenbank auf. Es wird Delphi XE5 verwendet.

Die Verbindung wird über eine TFDConnection Komponennte mit den folgenden Parametern aufgebaut:

DriverID=FB
Database=C:\PfadZurDB\TEST.FDB
User_Name=sysdba
Password=masterke

Bei der Komponente selbst wurde die Eigenschaft LoginPrompt auf False gesetzt, ansonsten wurden die Standardwerte beibehalten.

Auf das Form habe ich eine TFDTable Komponente gesetzt, bei der lediglich die Connection und der TableName angegeben und ansonsten die Standardwerte beibehalten wurden.

Bei der zweiten TFDTable auf dem Form wurde auch die Connection und der TableName gesetzt und als MasterSource zusätzlich die Source der ersten Tabelle sowie das Verbindende Feld angegeben.

Durch einen ButtonClick werden jetzt die Tabellen gefüllt. Das erfolgt per "INSERT INTO(…) SELECT … FROM" Anweisung.

Bei bestehender Master-/Detail-Verbindung werden in einem Datengitter, welches als Source die zweite Tabelle hat keine Daten angezeigt.

Wenn jetzt der Datensatz in der ersten Tabelle wechselt werden auch zu diesem Datensatz nicht die passenden Detail Datensätze angezeigt.

Wird die Master-/Detail-Verbindung aufgehoben, dann sind im Datengitter alle Zeilen der zweiten Tabelle sichtbar.

Die Besonderheit ist, daß beide Tabellen in der Firebird-Datenbank als GLOBAL TEMPORARY TABLE mit ON COMMIT PRESERVE ROWS; angelegt wurden, da die Datenbank pro Benutzer (Session) im Netzwerk geführt werden sollen.

Kennt das Problem mit den GLOBAL TEMPORARY Tabellen jemand oder hat eine Ide wie das zu lösen ist? Ich möchte nicht für jeden Benutzer eigene Tabellen in Firebird definieren und dann mit Benutzerkennungen rumhantieren.

Danke im Voraus.
  Mit Zitat antworten Zitat