[NEWSboard IBMi Forum]
Seite 2 von 3 Erste 1 2 3 Letzte
  1. #13
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    CRTPF ohne DDS erstellt immer mit CCSID *HEX (65535).
    CREATE TABLE per SQL erstellt bei Zeichenfeldern grundsätzlich mit CCSID, da diese auf Feldebene angegeben wird.
    *HEX muss man explizit angeben oder man verwendet binary Felder.

    Am Besten eignet sich da QM-Query, da diese zur Laufzeit auch eine Ausgabedatei erstellen können. Hier wird SQL verwendet und somit auch mit CCSID gearbeitet.

    Für dein Spoolproblem könnte die Lösung ja nun so aussehen:

    CRTPF in QTEMP mit CCSID 65535
    CPYSPLF
    STRQMQRY QMQRY(MYSQL) OUTPUT(*OUTFILE) OUTFILE(QTEMP/MYOUT)
    CPYTOIMPF

    Der QMQRY MYSQL kann dann direkt deinen Select enthalten.
    Wenn du willst, kannst du auch Parameter verwenden um den Dateinamen z.B. dynamisch zu haben:

    select ....
    from &myfile

    STRQMQRY ... SETVAR((MYFILE 'QTEMP/MYSPLF'))

    Wenn du nun mehrere Spools zu einer Ausgabe zusammenfassen musst, kannst du beim 1. QMQRY OUTMBR(*FIRST *REPLACE) und in den folgenden OUTMBR(*FIRST *ADD) angeben. *REPLACE/*ADD kannst du auch in eine Variable packen.

    In einem anderen Thread hat einer getestet, dass bei großen Datenmengen die CSV-Aufbereitung in SQL schneller ist, als im CPYTOIMPF.
    Ausserdem ist man ggf. variabler was die Vornullen oder für Excel die Zeichenbehandlung angeht:

    char(feld) <= linksbündig ohne Vornull
    digits(feld) <= mit Vornull, allerdings ohne Komma, kann man aber mit substr() aufteilen.

    Auch die Interpretation von Numerisch als Zeichen für Excel kann in SQL gelöst werden:

    '''' concat digits(mynum) concat ';' <= man beachte die 4 Hochkomma

    Die PF enthält dann bereits das CSV-Format, man kann es schön testen und anschließend reicht ein CPYTOSTMF, der eben schneller als CPYTOIMPF ist.
    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

  2. #14
    Registriert seit
    Dec 2005
    Beiträge
    111
    Hi

    also ich habe jetzt mal wieder etwas gelernt: QMQRY

    Link: iSeries / AS400 FAQ: How can I get started with QMQRY (Query Management Query)?

    habe mein CL wie folgt angepasst:
    PGM
    DLTF FILE(QTEMP/SPOOL_QM)
    MONMSG MSGID(CPF0000)
    DLTF FILE(QTEMP/SPOOL_AUS)
    MONMSG MSGID(CPF0000)
    RMVLNK OBJLNK('/HOME/USER/spool.cSV')
    MONMSG MSGID(CPF0000)
    CRTPF FILE(QTEMP/SPOOL_QM) RCDLEN(132)
    CPYSPLF FILE(QPRTSPLQ) TOFILE(QTEMP/SPOOL_QM) +
    JOB(151353/USER/QPADEV0099) SPLNBR(4)
    STRQMQRY QMQRY(LIB/QRY) OUTPUT(*OUTFILE) +
    OUTFILE(QTEMP/SPOOL_AUS)
    CPYTOIMPF FROMFILE(QTEMP/SPOOL_AUS) +
    TOSTMF('/HOME/USER/SPOOL.CSV') +
    MBROPT(*REPLACE) STMFCODPAG(*PCASCII) +
    RCDDLM(*CRLF)
    ENDPGM

    leider bekomme ich immer noch die gleichen fehlerhaften Zeichen.

    Es muss aber an der CSSID liegen.

    Hilfe.

  3. #15
    Registriert seit
    Dec 2005
    Beiträge
    111
    wenn ich

    CRTPF FILE(QTEMP/TEST) RCDLEN(132)

    und dann

    upddta

    und dann

    CPYTOIMPF

    kommt auch Müll raus.

  4. #16
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ist doch kein Wunder, da CPYTOIMPF eine CCSID braucht. Verwende in diesem Fall CPYTOSTMF ... STMFCODPAG(1252).
    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

  5. #17
    Registriert seit
    Dec 2005
    Beiträge
    111
    ja da hast du af jedenfall recht.
    Ich habe nur das Problem das er dann meckert, weil ich mehr als drei felder habe.

    ich suche die fehlermeldung nochmal

  6. #18
    Registriert seit
    Dec 2005
    Beiträge
    111
    Externbeschriebene dateien oder Physische Dateien mit mehr oder weniger als drei Felder werden von diesem Befehl nicht unterstützt.

    Das kommt leider bei diesem befehl als Antwort.

  7. #19
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ich habe nun mal folgendes gemacht:

    CRTPF FILE(QTEMP/XTEST) RCDLEN(132)
    CPYSPLF FILE(QSYSPRT) TOFILE(QTEMP/XTEST)
    CPYTOSTMF FROMMBR('/qsys.lib/qtemp.lib/xtest.file/xtest.mbr') TOSTMF('/home/fuerchau/xtest.csv') STMFOPT(*REPLACE) DBFCCSID(273) STMFCODPAG(1252)

    Die Datei wurde anstandlos im IFS erstellt und kann mit Windows angezeigt werden.

    Ich weiß nicht, was du da falsch machst.
    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

  8. #20
    Registriert seit
    Dec 2005
    Beiträge
    111
    Hmm,

    geht bei mir auch. Ich muss nur den Parameter STMFCODPAG(*PCASCII) einstellen dann sieht es super aus.

    Das Problem bei mir ist das ich eine Datei per QRY erstlle. Das QRY fragt eine Kopierte spool datei ab die nur eine Variable hat in der länge 132. Um das ganze ein wenig zu sortieren jage ich die einmal durch ein QRY und bekomme eine schön sortierte datei heraus die 8 Felder hat. Und wenn ich die mit exakt dem gleichen CPYTOIMPF ins IFS schiebe ist sie im eimer.

    Das macht mich fertig!

  9. #21
    Registriert seit
    Dec 2005
    Beiträge
    111
    cpytostmf geht nicht bei mehr oder weniger als drei feldern, wenn die Datei extern beschrieben wird z.b qry

  10. #22
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wie sieht dein CPYTOIMPF denn genau aus ?
    Wie steht ggf. die CCSID deines Jobs und der Datei ?
    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. #23
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Warum nimmst du nicht den QMQRY ?
    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

  12. #24
    Registriert seit
    Mar 2003
    Beiträge
    80
    Ich mache das mit RUNQRY QRY(&QRY) OUTTYPE(*OUTFILE) OUTFILE(&QRY/QTEMP)

    Dieses File kann man dann mit CPYTOIMPF kopieren.

    Ab V6.1 kann man angeblich auch Header ausgeben, wenn ich mich nicht irre.

    Allerdings ist CSV für EXCEL nicht ideal geeignet(eigenmächtige Änderung des Datentyps bei automatischem Öffnen)

Similar Threads

  1. Spoolfiles Auf PC stellen
    By System_Error_1 in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 22-09-09, 08:39
  2. Sichern von Spoolfiles mit RUNBACKUP
    By Asti in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 26-10-06, 14:29
  3. Archvierte Spoolfiles in Windows anzeigen
    By SelfPity in forum NEWSboard Windows
    Antworten: 16
    Letzter Beitrag: 21-10-06, 17:45
  4. CCSID eines Spoolfiles ermitteln
    By y-tom in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 24-05-06, 13:59
  5. Spoolfiles aus outq per FTP zum DMS-System
    By cassandra in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 26-10-04, 15:54

Berechtigungen

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