[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2005
    Beiträge
    89

    Question 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

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    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 Zitat von takeoff/400 Beitrag anzeigen
    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
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Nov 2005
    Beiträge
    89
    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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von takeoff/400 Beitrag anzeigen
    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
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Apr 2005
    Beiträge
    385
    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.

  8. #8
    Registriert seit
    Nov 2005
    Beiträge
    89

    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

  9. #9
    Registriert seit
    Nov 2005
    Beiträge
    89

    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:-)

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dem ist leider so, das geht (meines Wissens) sogar erst ab V5R3.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Dem ist leider so, das geht (meines Wissens) sogar erst ab V5R3.
    Release V5R1M0! ... aber das wird auch nicht weiterhelfen!

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  12. #12
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... 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 Zitat von takeoff/400 Beitrag anzeigen
    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:-)
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Zugriff auf Serielle Schnittstelle aus RPG/VARPG
    By Kampi4 in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 25-11-05, 07:37
  2. Erstellen Trigger über SQL / Read Funktion
    By GHoffmann in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 07-07-05, 09:18
  3. update or delete without prior READ or CHAIN
    By newcomer in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 30-05-05, 10:12
  4. Zugriff auf Datei wo Keyfeld vom Typ variabler Länge
    By holly in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 07-12-04, 13:23
  5. VA RPG Read anweisung schlägt fehl
    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
  •