-
Vorsicht!
Diese DTAARA wird als Tipp für das Verhalten angegeben und muss explizit gesetzt werden.
Wenn also die DTAARA gesetzt ist, scheint es ggf. andere Programme zu geben, die dies benötigen.
Wenn du nun diesen Wert veränderst, kann es sein, dass andere Programme nun Schwierigkeiten bekommen.
Meistens läuft ja doch mehr als eine Software auf dem System.
Leider gibts da keinen Pauschalweg, da diese DTAARA in der QSYS und nicht in *LIBL gesucht wird.
Dadurch gilt diese Einstellung Systemweit.
Da CPYFRMIMPF aber durchaus parallel von verschiedenen Programmen verwendet werden kann, gibts leider keinen Weg, Probleme zu vermeiden.
Man könnte zwar mit ALCOBJ eine Exclusiv-Sperre setzen (falls berechtigt) und den Inhalt temporär verändern, allerdings kann eine DTAARA immer gelesen werden , hilft also nicht wirklich.
Ausserdem gilt dies nur als temporäre Lösung.
-
Hi,
das mit der dtaara ist schon klar, da denkt der Edv'er grade drüber nach (Ich glaube die wurde eingeführt beim Übergang von V5R2 auf V5R3, da es anfänglich Prob. mit den CCSID's bei V5R3 gab.)
aber noch was anderes ..
ein komplett leeres Feld wird nun als ein Blank dargestellt.
Ich (und vor allem der Empfänger) hätte 'nix' erwartet.
hat da noch einer ne Idee?
Thx
Robi
Nachtrag: selbst bei Birgittas View Lösung bleibt 1 blank in leeren Feldern
Last edited by Robi; 04-02-10 at 14:57.
Grund: neue version getestet: geht auch nicht
-
Das würde ich nun doch mal der IBM melden und ansonsten auf SQL umstellen.
Das geht eigentlich ganz einfach:
Erstelle einen QMQRY mit
Select trim(CFeld) concat ";" concat char(NFeld) concat ";"
Concat """" concat trim(DelimitedCFeld) concat """;" ...
from Myfile
where ....
Per STRQMQRY in eine Ausgabedatei
Per CPYTOSTMF ins IFS
Dann bist du alle Sorgen los und kannst dich ganz auf die Formate konzentrieren.
Wenn du dann noch die Feldnamen für CSV vorne weg haben willst:
select distinct "Feld1;Feld2;..." from myfile
union all
select ......
-
Das würde ich nun doch mal der IBM melden und ansonsten auf SQL umstellen.
Hmm,
ich hab grade das gefunden.
Es liest sich wie "das ist Absicht mit dem einen Blank"
andererseits steht weiter unten, das variable Felder nicht so behandelt werden.
Ist hier jemand des Englischen mächtiger als ich und kann mir mal meinen Übersetzungsfehler zeigen ?
Sql umstellen ist schon klar aber ...
7 Dateien mit 100-150 Feldern Ich leide nicht an Lagweile ..
Gruß
Robi
-
Arbeitest du mit oder ohne STRDLM ?
Wenn ohne, dann gibts mindestens 1 Blank:
A field of all blanks is interpreted as a field of one single blank character unless RMVBLANK *NONE is specified
Wenn mit, dann gibts auch leere Felder:
An empty string is defined as two string delimiters with no data between them
-
Ohne STRDLM
Es ist also, wie befürchtet.
it's not a bug, it's a Feature
also fleißig Feldnamen erfassen/kopiern
Danke
Robi
-
Nunja, der Unterschied ist ggf. noch das NULL-Flag.
Je nach DB (z.B. MS-Access), wird eine leere Zeichenkette auch als NULL interpretiert.
Wenn das Feld ALWNULL nicht hat, muss ja mindestens ein Zeichen erscheinen.
VARLEN-Felder dürfen auch leer sein, nur CHAR-Felder ohne NULL werden wohl so behandelt.
Wenn mit STRDLM, ist das Ergebnis ja quasi nicht leer, nämlich ...;"";...
Ist zwar ein wenig inkonsequent, aber da hätte ich jetzt auch ein Leerzeichen erwartet.
Warum stört denn das eigentlich ?
Was das Erfassen angeht:
Lass dir doch vom OpsNav die Create-DDL's erstellen.
Dann benötigst du nur noch die Tipparbeit mit dem Drumherum.
Mach am besten direkt ein CREATE VIEW daraus und der OpsNav erstellt dir diese dann auch.
-
Warum stört denn das eigentlich ?
Phase 1: Muttergeselschaft des Kunden (MdK) : wir brauchen informationen als CSV Datei
Phase 2: Ich: hier, bitte
Phase 3: MdK: nein so nicht. Keine Trennzeichen und keine Blank in leeren Feldern
Phase 4: Fuerchau fragt: warum
Phase 5 bis ... keine Antwort
Ich danke Dir,
werde den OpsNav mal versuchen
Gruß
Robi
-
Man könnte zwar mit ALCOBJ eine Exclusiv-Sperre setzen (falls berechtigt) und den Inhalt temporär verändern, allerdings kann eine DTAARA immer gelesen werden , hilft also nicht wirklich.
kann die wirklich immer gelesen werden, habe mal folgendes versucht:
ALCOBJ OBJ((HOLM/TESTDTA *DTAARA *EXCL))
und dann in einer anderen Sitzung:
===> dspdtaara holm/testdta
F3=Verlassen F4=Bedienerführung F9=Auffinden F12=Abbrechen
F13=Unterstützende Informationen F23=Anfangsmenü festlegen
Datenbereich TESTDTA in Bibliothek HOLM kann nicht zugeordnet werden.
das bedeutet aber doch, dass die DTAARA nicht gelesen wird, oder bin ich da jetzt auf dem Holzweg?
Karl-Heinz
-
Hi,
ich hab's nun so
Code:
CHGVAR VAR(&QSH) VALUE('SED s/''; ;''/'';;''/g' *BCAT &von *BCAT '>' *CAT &nach)
STRQSH CMD(&QSH)
gelöst
Gruß
Robi
-
Auch eine Variante.
Bzgl. DTAARA, DSPDTAARA mag ein ALCOBJ intern machen, versuch mal per RTVDTAARA oder per RPG direkt zuzugreifen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks