[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Bist du sicher dass du die Datei neu erstellst ?
    Wenn nicht, wird die vorhandene CCSID verwendet.
    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. #2
    Registriert seit
    Dec 2005
    Beiträge
    111
    ja.

    habe alle dateien, auch qtemp händisch gelöscht.

    ich habe nochmal einen Test mit einer anderen Physischen datei gemacht und da war zumindest der Text zu lesen.

    Ohhh, ich verstehe das auch nicht.

  3. #3
    Registriert seit
    Dec 2005
    Beiträge
    111
    Uhi,

    wenn ich mir das Objekt im IFS per WRKLNK anschaue ist es auch in Klarschrift.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Schau dir die Attribute der IFS-Datei an, insbesonders die CCSID.
    Die Anzeige per WRKLNK setzt auch automatisch ASCII für die Anzeige korrekt um, so dass dies keine Aussage ist.

    Ach ja, welche CCSID hat denn deine PF in der QTEMP ?
    CPYTOIMPF benötigt da auch was anderes als 65535 sonst klappts nicht mit der Umsetzung.

    Für CSV-Ausgabe nehme ich auch einfach SQL:

    select trim(feld1) concat ';' concat trim(feld2) concat ';' ...
    from myfile

    Die so erstellte Datei kopiere ich dann eifache per CPYTOSTMF.
    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. #5
    Registriert seit
    Dec 2005
    Beiträge
    111
    Guten Morgen

    vielen lieben dank für die schnelle hilfe jedes mal!!!!


    Also es liegt datsächlich an der CSSID wüdre ich sagen. Ich habe einen File den ich per DSPOBJD *outfile generiere, der hat eine CSSID 273. Wenn ich den in Qtemp kopiere und dann per CPYTOIMPF ins IFS klappt es, aber wenn ich einen File per CRTPF erstelle bekomme ich nur eine CSSID 65335 hin. Gebe ich eine andere bei der erstellung an sagt die AS iss nicht. Mache ich vorher einen CHGJOB auf CSSID 273 erstellt er ihn mir trotzdem mit 65335. Wie erstelle ich den einen File mit einer CSSID 273?

  6. #6
    Registriert seit
    Dec 2005
    Beiträge
    111
    Per SQL finde ich auch interressant.
    Ich habe mir ein kleines QRY angelegt , welches ich in meinem CL laufen lasse. Kann ich das ergebniss auch aus dem QRY in eine .CVS ausgeben?

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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

  8. #8
    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.

  9. #9
    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.

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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

  11. #11
    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

  12. #12
    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
  •