PDA

View Full Version : SQLRPGLE ResultSet in großes Feld



Seiten : 1 [2] 3

BenderD
18-06-13, 12:35
SQL := Structured Query Language
versuchs mal mit UHK := unstructured Huddel Kauderwelsch
oder wie wärs mit dsppfm?

D*B
Kopf schüttelnd

Malte
18-06-13, 12:36
also ich Bekome von Drausen Praktisch den Dateinamen und alle die Datein die hier bei infrage kommen haben die gleichen Schlüsselfelder.

Das mit SQLDA werde ich mir mal angucken. :)

Ich danke schon mal für die ganze Hilfe.

Malte
18-06-13, 13:24
Das mit dem dsppdm wäre eigentlich perfekt weil mit substr in sql könnte ich da ja raus filtern.

hier habe ich was mit dspfd

http://newsolutions.de/forum-systemi-as400-i5-iseries/newsboard-programmierung/18110-exec-sql-insert-into-und-array.html

aber mit dsppfm geht das nicht oder geibt es da auch eine ähnlich möglichkeit

Fuerchau
18-06-13, 14:26
Dann kommen wir doch mal zur eigentlichen Aufgabe zurück.
Was soll das Programm denn leisten?
Wenn alle Dateien die gleichen Schlüssel haben, warum habe sie dann unterschiedliche Felder?

Mit Native SQL kann man per DESCRIBE TABLE ebenso alle Felder einer Tabelle auslesen um sie dann per Concat zu lesen.
Ich frage mich aber, wass denn mit den Daten danach passieren soll.
Hast du erst mal alles in der Struktur musst du ja doch Feldlängen o.ä. kennen.

Es gibt ja auch einen Umweg :):
CPYFRMIMPF: Kopieren ins IFS
CPYFRMSTMF: Kopieren aus IFS in Datei mit genau 1 Feld.

Malte
18-06-13, 14:38
Die Schlüsel sind gleich weil es eine Gruppe von Datein ist die alle ähnlich funktionieren und mit den gleichen Informationen angesprochen werden können aber verschiedene Ergebnise liefern.

Das Programm soll die im Input Parameter des Programms geforderte Datei lesen und desen Inhalt so zurück geben das dieser auf der vom aufrufenden Programm in eine DS geschoben werden kann die extern durch die Datei defieniert wurde.

Deshalb wäre es perfekt für mich wenn ich die Daten so in mein Feld bekommen kann wie sie bei dsppfm angezeigt werden.

So langsam zweifel ich aber ob das so möglich ist wie ich mir das vorstelle.

malzusrex
18-06-13, 14:43
Dann nur über einen Umweg.
Erstelle dir eine Zwischendatei
Crtpf qtemp/help rcdlen(5000)
cpyf Myfile qtemp/help mbropt(*replace) fmtopt(*nochk)

In der HELP hast du jetzt ein Feld

Eventuell ist das ja ein Ansatz für dich

Fruß
Ronald

Malte
18-06-13, 15:26
so hab mit der temporären Hilfsdatei hab ich es gelöst das klappt auch sehr gut und ist dauert auch nicht zulange.

Vielen Dank an alle

Robi
19-06-13, 10:56
Wenn das wie dsppfm reicht, kannst du doch alle Dateien im Pgm als E DS definiern und eine String drüber legen.
Allerdings must du in die richtige e ds fetchen.
Robi

sehe grade, du willst nicht alle Felder der Datei, dann geht das nicht.

Fuerchau
19-06-13, 11:01
Das ist aber RLA und nicht SQL und geht dann als "interne" DISK-Datei.
Dabei wird dann halt der gesamte Satz als 1 Feld in die DS übertragen.

Malte
19-06-13, 11:29
Das mit dem DS hatte ich als Notlösung aber dann wäre es ja nicht mehr so flexibel und jedesmal wenn eine neue Datei dazukommt muss das Programm bearbeitet werden.

Die Lösung mit der Hilfsdatei klappt echt gut nur habe ich das Problem das sich immer ein Lock aufbaut denn ich nicht weg kriege.

ich habe schon CLOF versucht der sagt mir Datei nicht offen, ich versuchen ein CLRPFM sagt Datei im zugriff.

MfG Malte