PDA

View Full Version : RPG / QFileSvr.400



Schorsch
07-12-04, 07:39
Hallo,

ich habe da mal eine Frage in Richtung IFS.
Wie kann ich ein File in einem RPG-Pgm nutzen, welches
auf einer zweiten AS/400 liegt? Die Maschinen
sind über das IFS verbunden.

Danke schon mal im voraus.

Schorsch

BenderD
07-12-04, 09:01
Hallo Schorsch,

wenn dir QFileServer schon ein Begriff ist, dann brauchst du nur auf der Maschine, auf der du das Streamfile verarbeiten willst, ein Verzeichnis mit dem Netzwerknamen der entfernten Maschine anzulegen, um deren IFS zu mappen. Die Verarbeitung des Streamfiles erfolgt dann im RPG mit C-APIs. Da gab es kürzlich Artikel im Midrange Magazin von mir. Den Code findest du auch auf meiner OpenSource Seite.

Dieter Bender


Hallo,

ich habe da mal eine Frage in Richtung IFS.
Wie kann ich ein File in einem RPG-Pgm nutzen, welches
auf einer zweiten AS/400 liegt? Die Maschinen
sind über das IFS verbunden.

Danke schon mal im voraus.

Schorsch

Schorsch
07-12-04, 09:39
Danke für die schnelle Antwort.

Ich dachte aber weniger an Streamfiles als an
"normale" Files in einer Bibliothek. Ist der Zugriff
möglich?

Welche Ausgabe vom Midrange Magazin enthält
die erwähnte Veröffentlichung?

Schorsch

BenderD
07-12-04, 10:09
Hallo Schorsch,

dann war die Frage etwas unscharf formuliert. Für Datenbanfiles ist das mit embedded SQL ohne Probleme möglich. Ebenfalls ginge auch noch SQL Call Level Interface, das ist aber etwas komplexer und hat kaum Vorteile, die das kompensieren würden.
Vom noch einfacheren Weg DDM Files, würde ich eher abraten, da gibt es doch wesentliche Einschränkungen.
Wann die Artikel genau waren, habe ich nicht parat, es war aber dieses Jahr.

mfg

Dieter Bender


Danke für die schnelle Antwort.

Ich dachte aber weniger an Streamfiles als an
"normale" Files in einer Bibliothek. Ist der Zugriff
möglich?

Welche Ausgabe vom Midrange Magazin enthält
die erwähnte Veröffentlichung?

Schorsch

Schorsch
07-12-04, 10:48
Hallo Schorsch,

dann war die Frage etwas unscharf formuliert. Für Datenbanfiles ist das mit embedded SQL ohne Probleme möglich. Ebenfalls ginge auch noch SQL Call Level Interface, das ist aber etwas komplexer und hat kaum Vorteile, die das kompensieren würden.
Vom noch einfacheren Weg DDM Files, würde ich eher abraten, da gibt es doch wesentliche Einschränkungen.
Wann die Artikel genau waren, habe ich nicht parat, es war aber dieses Jahr.

mfg

Dieter Bender

Hallo Dieter.

sorry für die ungenaue Frage. Man setzt manchmal
Hintergrundwissen voraus, das andere nicht haben können.

Das mit dem eingebetteten SQL klingt gut - aber wie sieht
die Syntax (speziell die Referenz auf die "ferne" Datei) aus?

Schorsch

Fuerchau
07-12-04, 11:05
Die Syntax ist identisch zum normalen SQL.
Du benötigst nur zusätzlich einen CONNECT.
Die Datenbank des Zielsystems muss auch über WRKRDBDIRE eingetragen sein, sonst klappt die Verbindung nicht.
Testen kannst du das per STRSQL und prompten des CONNECT.
Die SQL's sind dann identisch zum lokalen SQL. Du solltest allerdings die Tabellen/Dateien per Libname qualifizieren.

Wenn das Programm dann umgewandelt ist, benötigst du noch ein CRTSQLPKG, damit deine SQL's auf dem Zielsystem auch vorhanden sind.

Schorsch
07-12-04, 12:35
Die Syntax ist identisch zum normalen SQL.
Du benötigst nur zusätzlich einen CONNECT.
Die Datenbank des Zielsystems muss auch über WRKRDBDIRE eingetragen sein, sonst klappt die Verbindung nicht.
Testen kannst du das per STRSQL und prompten des CONNECT.
Die SQL's sind dann identisch zum lokalen SQL. Du solltest allerdings die Tabellen/Dateien per Libname qualifizieren.

Wenn das Programm dann umgewandelt ist, benötigst du noch ein CRTSQLPKG, damit deine SQL's auf dem Zielsystem auch vorhanden sind.
Hallo Fuerchau,

danke für die Hilfestellung. Konnte ein Connect durchführen.
Nun aber eine weiter Frage: Brauche ich für diese Funktionalität überhaupt
eine Verbindung mittels QFileSvr.400?

MfG
Schorsch

Fuerchau
07-12-04, 13:19
Nein. Hierfür muss nur der DRDA bzw DDM-Dienst gestartet sein um mit jeder DB/2 Daten auszutauschen.

QFileSvr.400 dient weitestgehend dem einfachen Austausch kompletter Objekte bzw. das Nutzen gemeinsamer IFS-Resourcen.