2016-04-20 13 views
0

Erste Definition von Datenbanktabellen:firedac Master - Detail-Beziehung nicht funktioniert

CREATE TABLE UNCERTAINTY 
(
    ID Integer NOT NULL, 
    NAME Varchar(240) CHARACTER SET NONE NOT NULL, 
    CONSTRAINT PK_UNCERTAINTY PRIMARY KEY (ID), 
    UNIQUE (NAME) 
); 

CREATE TABLE UNCERTAINTYDETAIL 
(
    ID Integer NOT NULL, 
    UNCERTAINTY_ID Integer NOT NULL, 
    MEASTYPE Varchar(255) CHARACTER SET NONE, 
    CONDITION Varchar(255) CHARACTER SET NONE, 
    POWERFACTOR Double precision, 
    LOADTYPE Varchar(255) CHARACTER SET NONE, 
    UNCERTAINTY Double precision, 
    CONSTRAINT PK_UNCERTAINTYDETAIL PRIMARY KEY (ID) 
); 

ALTER TABLE UNCERTAINTYDETAIL ADD CONSTRAINT FK_UNCERTAINTY_UNCERTAINTYDETAI 
    FOREIGN KEY (UNCERTAINTY_ID) REFERENCES UNCERTAINTY (ID) ON DELETE CASCADE; 

Und jetzt Definition meiner Datenquellen und Abfragen in DFM-Datei:

object FDQuery1: TFDQuery 
    Connection = Connection1 
    SQL.Strings = (
    'select * from UNCERTAINTY' 
    'order by NAME') 
    Left = 125 
    Top = 239  
end 
object FDQuery2: TFDQuery 
    MasterSource = DataSource1 
    MasterFields = 'ID' 
    Connection = Connection1 
    SQL.Strings = (
    'select * from UNCERTAINTYDETAIL' 
    'where UNCERTAINTY_ID=:param1' 
    'order by ID') 
    Left = 456 
    Top = 224 
    ParamData = < 
    item 
     Name = 'PARAM1' 
     ParamType = ptInput 
    end> 
end 
object DataSource1: TDataSource 
    DataSet = FDQuery1 
    Left = 53 
    Top = 239 
end 
object DataSource2: TDataSource 
    DataSet = FDQuery2 
    Left = 392 
    Top = 224 
end 

Beide Datenquellen verbunden sind db Raster.

Im Technologieformulare Ereignis nenne ich folgende Methoden:

FDQuery1->Open(); 
FDQuery2->Open(); 

Das Master-Raster zeigt korrekt alle in Tabelle UNGEWISSHEIT Lagergut aber Detail Raster ist immer leer. Warum ?

Antwort

0

Die Parameter der Detailabfrage sollten MasterFields entsprechen. Ändern Sie daher param1 von FDQuery2 zu ID, um den Wert MasterFields zu entsprechen.

Verwandte Themen