-
Variabler Filenamen bei READ möglich
Hallo Forum,
ich muß mit einem RPG pgm eine unbestimmte anzahl von files befüllen, beim READ/WRITE befehl muss ich aber immer einen qualifizierten filenamen eingeben, gibt es eine möglichkeit da mit variablen zu arbeiten, damit ich in einer schleife alle files (anzahl variabel) befüllen kann. mit statische filenamen müsste ich unzählige files definieren, das ist nicht sehr elegant. ähnlich wie mit einem index einer array, oder so in der art stelle ich mir das vor. danke schon mal für hilfe.
michael
-
Hallo,
solange der Datei-Aufbau identisch ist, kannst Du die Dateien als USROPN definieren und entweder mit dem CL-Befehl OVRDBF vor dem Öffnen überschreiben oder das Schlüssel-Wort EXTFILE(VarName) in den F-Bestimmungen angeben und die Variable vor dem Öffnen der Datei mit dem gewünschten Datei-Namen bestücken.
Wenn der Datei-Aufbau nicht identisch ist, musst Du mit dynamischem embedded SQL arbeiten, d.h. der SQL-Befehl wird zur Laufzeit zusammengeschustert und dann mit PREPARE in ein ausführbares SQL-Statement konvertiert. Mit EXECUTE können NICHT-Select-Befehle dann ausgeführt werden. Wird der SELECT-Befehl verwendet, muss wie beim statischen SQL mit Cursor gearbeitet werden.
... aber such' mal im Forum, ich denke diese Frage wurde bereits mehrmals gestellt und auch beantwortet.
Birgitta
-
ich würde das eher mit n Datenbankzugriffsmodulen, einem Array of Procedure Pointern und einer Schleife mit Aufrufen (dynamisch gebunden) angehen. Das mit dem OVRDBF landet doch im Krampf und fortlaufenden Open Close Arien und ob sich die Komplexität, die man sich mit SQL CLI oder dynamic SQL und SQLDA einfängt wirklich lohnt...
D*B
Zitat von takeoff/400
Hallo Forum,
ich muß mit einem RPG pgm eine unbestimmte anzahl von files befüllen, beim READ/WRITE befehl muss ich aber immer einen qualifizierten filenamen eingeben, gibt es eine möglichkeit da mit variablen zu arbeiten, damit ich in einer schleife alle files (anzahl variabel) befüllen kann. mit statische filenamen müsste ich unzählige files definieren, das ist nicht sehr elegant. ähnlich wie mit einem index einer array, oder so in der art stelle ich mir das vor. danke schon mal für hilfe.
michael
-
Vielen Dank für die Infos, ich war jetzt wo anders dran und werd jetzt mal loslegen damit. Allerdings sagt mir "array of procedure pointer" rein garnix? ich arbeite seit 20 jahren mit rpg, aber das ist mir fremd!?
mfg, michael
-
Das betrifft ILERPG.
Array's sind Tabellen, die mit DIM(nn) definiert sind.
Pointer können in ILERPG mit %ADDR(MyVar) verwendet werden.
ProcedurePointer sind ebenso Adressen, die allerdings auf Funktionen oder Prozeduren verweisen.
Weiteres siehe ILERPG-Handbuch.
-
Zitat von takeoff/400
ich arbeite seit 20 jahren mit rpg
... das muss ja kein Hinderungsgrund sein...
ergänzend zu Baldur: das ist von der Idee her so ähnlich wie der Aufurf von Programmen, deren Namen man aus einer Tabelle liest, nur dass man Procedures statt Programmen aufruft und die Procedure Pointer per API holt (=> dynamisches binden zur Laufzeit)
D*B
-
Also ich würde aufgrund der Einfachheit auch eine Intern Beschribene Datei mit OVRDBF und den passenden DS arbeiten.
Datei OPEN lesen DS drüberlegen schreiben CLOSE!
Ich persönlich mache die OVRDBF dann immer im RPG per QCMDEXC, man spart ein CL.
-
Problem gelöst
Ich werde es - nachdem der fileaufbau aller outfiles gleich ist - auch so machen. nachdem ich nicht mehr hauptberuflich programmiere, sondern nur alte kunden zeitweise betreue, tu ich mir das ILE Studium nicht mehr an, obwohl es von den Möglichkeiten her schon sehr mächtig und interessant geworden ist, soweit ich das durchblicke.
Vielen Dank für Eure Hilfe und einen schönen tag noch!
LG, Michael
-
Frage an Brigitta!
hallo brigitta, ich will das eigentlich so lösen, wie Du mir vorgeschlagen hast, aber nicht mit CL-OVRDBF, sondern mit dem EXTFILE(VarName), damit ich mir die vielen Cl Aufrufe erspare. Allerdings geht das bei mir nicht, kann es sein dass es daran liegt, dass ich hier auf einer alten CISC Machine mit V3. arbeite? Die Sourcen sind schon alle in ILE convertiert, aber dieses Schlüselwort kennt die Mühle nicht!? Wie gesagt, ich mach das nur mehr gelegentlich für alte Kunden von mir aus meiner Codierer-Zeit und da kommt mir manchmal auch noch eine uralte Mühle unter. So wie es aussieht muss ich doch mit OVRDBF arbeiten, oder überseh ich da was?
Nochmals Danke für Eure Geduld:-)
-
Dem ist leider so, das geht (meines Wissens) sogar erst ab V5R3.
-
Dem ist leider so, das geht (meines Wissens) sogar erst ab V5R3.
Release V5R1M0! ... aber das wird auch nicht weiterhelfen!
Birgitta
-
... das mit dem Asbach (V3), sowas sollte man schon ganz am Anfang schreiben.
User controlled open geht auch da schon und den OVRDBVF, den kann man auch per QCMDEXC machen, also CL braucht man da gar keins.
D*B
Zitat von takeoff/400
hallo brigitta, ich will das eigentlich so lösen, wie Du mir vorgeschlagen hast, aber nicht mit CL-OVRDBF, sondern mit dem EXTFILE(VarName), damit ich mir die vielen Cl Aufrufe erspare. Allerdings geht das bei mir nicht, kann es sein dass es daran liegt, dass ich hier auf einer alten CISC Machine mit V3. arbeite? Die Sourcen sind schon alle in ILE convertiert, aber dieses Schlüselwort kennt die Mühle nicht!? Wie gesagt, ich mach das nur mehr gelegentlich für alte Kunden von mir aus meiner Codierer-Zeit und da kommt mir manchmal auch noch eine uralte Mühle unter. So wie es aussieht muss ich doch mit OVRDBF arbeiten, oder überseh ich da was?
Nochmals Danke für Eure Geduld:-)
Similar Threads
-
By Kampi4 in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 25-11-05, 07:37
-
By GHoffmann in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 07-07-05, 09:18
-
By newcomer in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 30-05-05, 10:12
-
By holly in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 07-12-04, 13:23
-
By Peter Kosel in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 18-10-01, 12:49
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks