[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2013
    Beiträge
    3

    COBOL und START Anweisung

    Hallo zusammen,

    ich muss mich gerade mit einer AS400 auseinadersetzen und da ich schon lange keine indexsequentiellen Dateien mehr am Wickel hatte, ist das Wissen etwas eingestaubt ud braucht einen Schubs.

    Ich hoffe das ich den gleich bekommen werde

    Zum Problem:
    Ich habe eine physische datei mit einer logischen Sicht, diese muss ich im ersten Schritt füllen.
    Anschließend werden die Sätze aus der gerade gefüllten Datei weiter verarbeitet und ich muss wieder auf den ersten Satz der Datei zurück und sequentiell lesen.
    Natürlich könnte ich mit schliessen und erneutem Öffnen der Datei wieder an den anfang kommen, aber ich meine das ging doch auch mit der START Anweisung.

    Wenn ich das noch richtig im Kopf habe positioniert diese auf den ersten Satz der dem schlüssel entspricht oder halt wor oder danach wenn dieser schlüssel nicht vorhanden ist

    Ich wollte das also so machen:

    MOVE LOW-VALUE TO DATEI-KEY-FELDER
    START DATEINAME
    READ DATEINAME NEXT RECORD
    AT END
    SET DATEI-ENDE TO TRUE

    Nur irgendwie habe ich nun in der Hauptschleife das Problem, dass das Dateiende gesetzt ist.

    Was mach ich denn da falsch ?

    Danke für eure Hilfe

    Grüße

    Mike

  2. #2
    Registriert seit
    Aug 2006
    Beiträge
    1.901
    Also wir haben nach dem Low-Value immer

    03670 START DAT0018 KEY NOT < 018-KEY

    gemacht.

    BTW. Hier ist die Doku von IBM (ist zwar AIX sollte aber doch gleich sein)

    http://publib.boulder.ibm.com/infoce...%2Ftpfio24.htm

  3. #3
    Registriert seit
    Nov 2013
    Beiträge
    3
    Danke dir, werde ich doch später direkt mal ausprobierern.
    Der Pointer steht ja dann vor dem ersten Satz, korrekt ?
    Also wird ein READ NEXT den ersten Satz der Datei lesen

    Ich denke auch das die Doku auch auf anwendbar ist.

    Werde berichten

    Viele Grüße

    Mike

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    18.627
    Da in COBOL/400 der Key extern beschrieben ist, sind die Keyfelder im Satzpuffer zu füllen und anschließend ein:

    start myfile key is >= EXTERNALLY-DESCRIBED-KEY
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Nov 2013
    Beiträge
    3
    Aha,

    vielen Dank für die erweiterten Informationen.

    Mit dem Operator >= wird der Pointer auf den ersten Satz der Datei zeigen, wenn in meinen Key-Felder im Satzpuffer jeweils Low-Values stehen.
    Muss ich dann den Satz, auf den der Pointer nun zeigt, mit READ Dateiname oder mit READ NEXT Dateiname lesen.
    Logisch wäre für mich ein normales READ, da READ NEXT eigentlich den nachfolgenden Satz zur Verfügung stellen würde.

    Ist das korrekt oder habe ich einen Denkfehler ?

    Ich werde das aber mal ausprobieren, sobal ich wieder an der Machine bin.

    Die START Anweisung würde ja dann auch nicht auf INVALID KEY laufen, wenn ich >= verwende. Außer in dem Fall das die Datei keine Datensätze enthält

    Grüße

    Mike

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    18.627
    Der Start setzt genau vor dem gewünschten Schlüssel auf.
    Ein "READ MyFile at end" liest den nächsten Satz, "next" ist der Default, im Gegensatz halt zu "previous".
    Ein "READ myfile key is externally-described-key Invalid" ist ein Direktzugriff.

    Der Invalid beim Start wird tatsächlich nur ausgelöst, wenn kein Satz folgt. Kann aber auch ignoriert werden, da der nächste Read ja auch auf "at end" kommt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

Ähnliche Themen

  1. Start Managment Central
    Von SL im Forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 02-06-03, 09:29
  2. Start Service Tools
    Von Bosch im Forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-09-02, 16:06
  3. Optimierung SQL Anweisung
    Von Cassius im Forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-03-02, 19:28
  4. QUERY als SQL-Anweisung ausgeben?
    Von Matthias.Hayn im Forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 27-11-01, 11:28
  5. VA RPG Read anweisung schlägt fehl
    Von Peter Kosel im Forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 18-10-01, 12:49

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •