PDA

View Full Version : Datenbankdatei als CSV-File zum IFS



Seiten : [1] 2

loeweadolf
19-07-06, 21:32
Ich habe eine Datenbank-Datei, die ich ins IFS kopieren möchte als CSV-Datei (comma delimited). Das heisst, Felder sollen durch Komma getrennt werden. Weiterhin sollen für numerische Werte nur soviel Stellen übertragen werden, wie vorhanden. Als Dezimal-Komma soll ein Punkt ausgegeben werden.

Diese Datei soll anschl. per FTP in die USA transferiert werden.

Ich habe einiges ausprobiert mit CPYTOIMPF, komme aber nicht weiter.

Könnte mir jemand helfen und mir den kompletten CPYTOIMPFP - Befehl mal definieren ? Danke.

mfg. Ludger

malzusrex
20-07-06, 07:08
morgen

versuche mal


CPYTOIMPF FROMFILE(MyLib/MyFile) TOSTMF('/malz/daten.csv') STMFCODPAG(*PCASCII) RCDDLM(*CRLF) DECPNT(*PERIOD)


gruß
ronald

c.b.
20-07-06, 07:56
hätte ich auch vorgeschlagen mit dem evtl. kleinen unterschied als feldtrenner FLDDLM(';') zu verwenden, falls in den daten kommas vorkommen !

christian

malzusrex
20-07-06, 08:07
dafür ist ja

STRDLM('"')

als default definiert, das alle Textfelder eben in " eingeschlossen sind

Ronald

c.b.
20-07-06, 08:11
danke, wieder was dazu gelernt; wir haben auch nioch nicht so oft damit gearbeitet und haben uns nur an die anweisungen gehalten, aber wohl falsch interpretiert. danke.

christian

alfredo
20-07-06, 12:21
Ich habe im Forum-400 ein Zip-File abgelegt (CVTDB2)
CVTDB2CSV erstellt ein CSV-File incl. Feldnamen in der ersten Zeile und es werden die einzelnen Felder getrimmt.

loeweadolf
20-07-06, 15:33
morgen

versuche mal


CPYTOIMPF FROMFILE(MyLib/MyFile) TOSTMF('/malz/daten.csv') STMFCODPAG(*PCASCII) RCDDLM(*CRLF) DECPNT(*PERIOD)


gruß
ronald

Vielen Dank an alle, die geantwortet haben.

Hallo Ronald, es hat soweit funktioniert, doch brauche ich noch Ergänzungen.

Ich ganz bestimmte Vorgaben. z.B. den Begrenzer für Zeichenfolgen kann ich nicht gebrauchen. Dafür kann ich aber die Daten vorher bereigen, falls ein Komma vorhanden sein sollte.

Allerdings müssen die Daten optimiert werden, dass heisst: es dürfen keine Leerzeichen ausgegeben werden, wenn das Feld nicht komplett gefüllt ist.

Ist ein Name in einem Feld mit 10 Stellen z.B.: = HUGO, dann dürfen auch nur 4 Stellen ausgegeben, begrenzt durch Komma. Dasselbe gilt für Zahlenfelder: Führende Nullen dürfen nicht als *blank ausgegeben werden, sondern gar nicht.

Gibt es dafür eine Möglichkeit ?

mfg. Ludger

alfredo
21-07-06, 17:26
Mir war draussen zu heiss....
Ich habe meinen CMD erweitert:
CVTDB2CSV FROMFILE(TESTFIL) TOOBJ('/testfil.csv') HEADER(*NONE) DECPNT(*PERIOD) STRDLM(*NONE) FLDDLM(',')

Generell werden leere Einträge unterdrückt(Leerstring, 0)

Gegen einen kleinen Beitrag für unsere leere Kaffeekasse schicke ich ein SAVF

lg

loeweadolf
21-07-06, 17:39
Mir war draussen zu heiss....
Ich habe meinen CMD erweitert:
CVTDB2CSV FROMFILE(TESTFIL) TOOBJ('/testfil.csv') HEADER(*NONE) DECPNT(*PERIOD) STRDLM(*NONE) FLDDLM(',')

Generell werden leere Einträge unterdrückt(Leerstring, 0)

Gegen einen kleinen Beitrag für unsere leere Kaffeekasse schicke ich ein SAVF

lg

Danke für das Angebot.

Ich hatte mir gestern schon mal aus dem Forum-400 deinen Beitrag heruntergeladen.


Mir ist aber lieber, wenn ich eine Quelle dabei habe, wo ich notfalls mal selber
was ergänzen kann.

u.a. brauche ich bei der erstellten Datei keine Kopfzeilen.

Ich werde wahrscheinlich mit einem RPG-Progrann den benötigten String aufbauen (wird ja auch entlohnt)

mfg. Ludgerr

Franz7
27-06-07, 10:27
Hallo,
wo kann man dieses CL's downloaden?

Vielen Dank.
mfg f.koch