Anmelden

View Full Version : 2 PK aus verschiedenen Dateien für ein LF(JOIN)



Squall
10-10-06, 13:26
Hallo,

ich versuche gerade mir ein LF mit Joins anzulegen. Jedoch bekomme ich den Fehler das alle Keys aus dem 1. File in meiner JFile Definition stammen müssen. Gibt es einen Weg das ich den PK aus meiner anderen Tabelle trotzdem benutzen kann? (außer ein CL Programm mit "opnqryf")

Gruß Martin

EDIT: Ich will also das LF mit einer Keylist lesen die 2 Keys enthält, wo zb. Key1 aus File 1 ist und Key2 aus File2.

Fuerchau
10-10-06, 15:24
Klar geht das. In der Meldung steht auch, dass in diesem Fall DYNSLT erforderlich ist. Dieses Schlüsselwort steht noch vor dem Satzformat.

Es entsprichet im Wesentlichen einer Join-View incl. einer Order-By-Klausel.

Dann gibts da noch DFTVAL um einen Inner- bzw. Left-Join zu bestimmen, fehlt DFTVAL ist es ein INNER JOIN.

Achte aber auf die Zugriffswege, da der 1. Zugriff auf diese LF mitunter sehr lange dauern kann.

Squall
10-10-06, 16:12
Ah vielen Dank!

Gruß Martin

EDIT: DYNSLT ist jedoch nur für Select/Omit Anweisungen ohne Key wenn ich es richtig verstanden habe. Woher soll dieses LF beim Lesen wissen welche Werte aus meinem Programm es benutzen soll? (Zb.: Setze ich Feld1 meiner Keylist auf "Txt123" und Feld2 auf "ABC". Da DYNSLT aber keine Keys verwendet, wie kommt es dann an diese Werte aus meinem Programm?) Ich brauche ja die 2 Keys um an die richtigen Ergebnisse zu kommen.

malti
12-10-06, 15:29
A DYNSLT
A R DEPF JFILE(FDEPF010 FDEPF020)
A J JOIN(FDEPF010 FDEPF020)
A JFLD(FDEKTO FD2KTO)

Fuerchau
13-10-06, 09:06
In soweit stimmt es leider schon, dass in einer Join-LF Key-Felder ausschließlich aus einer Datei erlaubt sind.
DYNSLT ist dann zusätzlich erforderlich, wenn Select/Omits angegeben werden, die sich auf eine verbundene Datei beziehen.

@malti
Dein Beispiel ist insoweit falsch, als dass DYNSLT unnötig ist, da du keine Selects definiert hast.
Das hier beschriebene Problem betrifft K-Definitionen (Keys).

Squall
16-10-06, 08:35
Ok danke für die Info.

Gruß Martin

malti
17-10-06, 06:43
Hallo Fuerchau,

in meiner Originaldatei habe ich schon einen Omit, ich habe ihn nur nicht reinkopiert. Aber ich habe das eigentliche Problem dieser Aufgabe nicht erkannt. Du hast recht, ist mir jetzt schon klar.

Gruß Malti