[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Sep 2003
    Beiträge
    221

    Sätze in Quellen über Programm einfügen

    Hallo Forum,

    ich muss bei allen Quellen einen Header maschinell einfügen.

    Dafür habe ich nun ein Programm erstellt, dass die neuen Sätze mit der Sequenz 0,01, 0,02, 0,03 etc. in die QRPGLESRC geschrieben hat.

    Wenn ich nun SEU starte, kommt die Fehlermeldung "Sätze in falscher oder doppelter Reihenfolge. Die Sätze wurden neu sortiert."

    Und schon stehen meine Sätze ganz am Ende der Quelle.

    Gibt es da einen Trick um das zu realisieren. Ist ja von der Sache ehr ziemlich einfach.

    Viele Grüße

    Peter
    Peter Kinne
    EDV-Beratung
    www.kinne.de

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Hallo Peter,

    ich musste auch mal Anpassungen automatisch durchführen lassen. Habe dafür folgenden Trick verwendet:

    001 C....
    002 C....
    003 C*<--- Nach 002 soll der Satz hinzugefügt werden => also:
    PHP-Code:
    Update QRPGLESRC 
    Set Sequenzen 
    Sequenzen 
    Where Sequenzen 
    002 
    lg

  3. #3
    Registriert seit
    Sep 2003
    Beiträge
    221
    Hallo Andreas,

    das klappt leider nicht.

    Ich habe die Zeilenummer mit SQL verändert und dan 3 neue Zeilen ebenfalls mit SQL eingefügt.

    Das Member sieht wie folgt aus.

    3,00 Zeile 1
    4,00 zeile 2
    1,00 Eingefügt mit SQL 001
    2,00 Eingefügt mit SQL 002

    Und wenn ich dann SEU starte kommt die Fehlermeldung:

    "Sätze nicht in aufsteigender Reihenfolge..bla..bla..bla"

    Und aus 1,00 wird 5,00 und aus 2,00 wird 6,00.

    Ich lade nun des gesamten Quelltext inTabellen, füge dort ein, lösche die Quelle und lege sie dann neu an.

    Eine andere Möglichkeit sehe ich im Moment nicht.

    Gruß

    Peter
    Peter Kinne
    EDV-Beratung
    www.kinne.de

  4. #4
    Registriert seit
    Jan 2003
    Beiträge
    759
    Hallo Peter, das ist der Trick:

    In einer QxxxSRC arbeiten, die bei CRTSRCPF mit ACCPTH(*KEYED) erstellt worden ist.

    Gruß,
    Robert

    Nachtrag: http://newsolutions.de/forum-systemi...html#post68665

  5. #5
    Registriert seit
    Sep 2003
    Beiträge
    221
    Hallo Robert,

    vielen dank für den Tipp und natürlich liebe Grüße.

    Aber es ist schon zu spät, ich mache es wie beschrieben.

    LG Peter
    Peter Kinne
    EDV-Beratung
    www.kinne.de

  6. #6
    Registriert seit
    Jan 2003
    Beiträge
    759
    ...aber hoffentlich mit Sicherheitskopie und/oder COMIT

  7. #7
    Registriert seit
    Sep 2003
    Beiträge
    221
    aber sicher doch!!!!!
    Peter Kinne
    EDV-Beratung
    www.kinne.de

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das war schon immer so, dass man in sequentielle Dateien keine Sätze einfügen sondern nur anhängen konnte.
    Deshalb gibts auch (was eher selten verwendet wird) die *Keyed-SRCPF.
    Auch SEU arbeitet da nicht anders.
    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

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von peter.kinne Beitrag anzeigen
    Hallo Andreas,

    das klappt leider nicht.

    Ich habe die Zeilenummer mit SQL verändert und dan 3 neue Zeilen ebenfalls mit SQL eingefügt.

    Das Member sieht wie folgt aus.

    3,00 Zeile 1
    4,00 zeile 2
    1,00 Eingefügt mit SQL 001
    2,00 Eingefügt mit SQL 002
    Hallo Peter,
    willst sollen die eingefügten Zeilen mit 5 und 6 nummeriert werden?

    Ich habe gerade mein PGM angeschaut und war doch etwas aufwändiger. Habe es wie folgt gemacht:

    1. Teildatei bearbeiten
    beim Insert die gewünschte Sequenznummer mit angeben aber davor das Update mit SeqNr. + 1.

    2. Teildatei in ein Temp-File einfügen (sortiert) und wieder zurück.
    PHP-Code:
    // Daten herumkopieren,
    // damit die Reihnfolge wieder stimmt
    Exec Sql Delete From QTEMP/TEMPMBR;

    Exec Sql Insert Into QTEMP/TEMPMBR
    (Select SRCSEQSRCDATSRCDTA
    From QTEMP
    /MEMBER Order By SRCSEQ);

    Exec Sql Delete From QTEMP/MEMBER;

    Exec Sql Insert Into QTEMP/MEMBER
    (Select SRCSEQSRCDATSRCDTA
    From QTEMP
    /TEMPMBR Order By SRCSEQ); 
    lg

Similar Threads

  1. Programm auf "ferner" AS400 ausführen.
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 13-05-09, 19:50
  2. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  3. Antworten: 3
    Letzter Beitrag: 24-11-06, 07:41
  4. Gelöschte Sätze werden verarbeitet
    By Hubert in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 20-05-05, 10:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •