Anmelden

View Full Version : DDS in ILE RPG



Seiten : 1 2 3 4 5 [6] 7 8 9

Fuerchau
15-09-06, 13:56
Na Gott-sei-Dank gibts keinen Vergleich, sonst könnte ich wohl nicht bis zur Rente durchhalten.

Squall
15-09-06, 14:09
Na Gott-sei-Dank gibts keinen Vergleich, sonst könnte ich wohl nicht bis zur Rente durchhalten.

Wenn man wirklich gut und erfahren ist und sich auf der As400/i5 gut auskennt hat man bestimmt einen sicheren Arbeitsplatz bzw genug Aufträge. :)

Aber bis dahin ists ein langer steiniger Weg. ;)

Fuerchau
15-09-06, 16:13
Genau das ist das Problem:
Gut wird zu teuer und Erfahrung ist halt zu alt ;)

und AS/400 ?
Nur bei Kenntnis von Java/Internet/Mail/....

RPG ? machen wir nicht mehr ;)

Squall
18-09-06, 08:08
Genau das ist das Problem:
Gut wird zu teuer und Erfahrung ist halt zu alt ;)

und AS/400 ?
Nur bei Kenntnis von Java/Internet/Mail/....

RPG ? machen wir nicht mehr ;)

Java hatte ich 2 Jahre und Internet/Mail kenn ich mich auch halbwegs aus nur geholfen hat mir das bisher 0. :)

Naja jetzt gibts ja VA-RPG, schöne Windoof Oberflächen. :rolleyes:

Squall
18-09-06, 18:03
Ich hätte noch einen Frage, rein Interessehalber. Könnte ich SRCDAT bzw SRCSEQ auch einen String mit der Länge 6 übergeben?

Fuerchau
18-09-06, 18:09
Übergeben kannst du was du willst, Hauptsache in der Datei stehts dann numerisch.

Squall
19-09-06, 07:38
Ok danke .

Ich habe jedoch noch eine andere Frage.
Und zwar musste ich das Programm so umschreiben das es die Daten aus einer Datei liest. Die Werte sind korrekt:
zb:
SRCSEQ = 000100
SRCDAT = 060919
SRCDTA = ' A CCSID(273)'

Jedoch bekomme ich die Meldung wenn ich mir die erstellte Datei anschaue das die Folgenummern nicht korrekt angeordnet sind und sie neu angeordnet werden(Doppelte oder nicht aufsteigende Folgenummer. Sätze wurden neu angeordnet.). Das Änderungsdatum wird garnicht eingetragen. (000000)

Werden die führenden '0' bei einem Move weggelassen? (Move weil ich die als Char vorliegenden Zahlen wieder in P umwandeln will)

Beim Schreiben in die Datei gibt es keine Fehlermeldung, ein CRTPF ist jedoch nicht möglich bis ich manuell in die Datei gehe, wobei laut meldung SRCSEQ neu geordnet wird, und etwas ändere um SRCDAT zu setzen.

Der Write sieht so aus:


DCMDREC DS 92
DSRCSEQ 6P 2
DSRCDAT 6P 0
DSRCDTA 80A

C move seq srcseq
C move dat srcdat
C eval srcdta = dta

C write dds cmdrec

Fuerchau
19-09-06, 08:41
MOVE überträgt rechtsbündig genau so viele Stellen wie das Quellfeld lang ist, maximal jedoch so viele Stellen wie das Zielfeld lang ist.
Bei einer kürzeren Übertragung bleibt der Rest des Feldes stehen.

Für numerische Übertragung nimmt man Z-ADD oder EVAL, was dann auch Kommagerecht passiert.

Desweiteren sind deine Felder falsch definert:
SRCSEQ/SRCDAT sind vom Typ S (gezont).

Es wird deswegen kein Fehler ausgelöst, weil das Schreiben der Datei ungeprüft akzeptiert wird.

Squall
19-09-06, 08:52
MOVE überträgt rechtsbündig genau so viele Stellen wie das Quellfeld lang ist, maximal jedoch so viele Stellen wie das Zielfeld lang ist.
Bei einer kürzeren Übertragung bleibt der Rest des Feldes stehen.

Für numerische Übertragung nimmt man Z-ADD oder EVAL, was dann auch Kommagerecht passiert.

Desweiteren sind deine Felder falsch definert:
SRCSEQ/SRCDAT sind vom Typ S (gezont).

Es wird deswegen kein Fehler ausgelöst, weil das Schreiben der Datei ungeprüft akzeptiert wird.

Z-Add hatte ich schon probiert. Also nach meinem Move einen z-add.

Ich habe gerade versucht die Datei per Hand umzuwandeln und mir dann das SF angeschaut. Anscheinend wird weder SRCSEQ noch SRCDAT korrekt geschrieben:


- A CCSID(273) . .j¤

Ist meine Übergabe SRCSEQ SRCDAT SRCDTA dann in der Reihenfolge überhaupt richtig? Weil es bei dem SF ja SRCSEQ SRCDTA und dann SRCDAT ist.

EDIT: Geschafft es geht. :) Habe die Datei aus der gelesen wird neu definiert, P durch S ersetzt(sowohl in der Datei als auch im Programm) und jetzt geht es. :)

Vielen Danke für die Hilfe!

Squall
21-09-06, 16:25
Hallo,

diesmal geht es nicht um das Schreiben einer DDS Datei sondern das Lesen einer solchen.
Ich habe den Namen eines Feldes auf das Referiert wird und will nun aus der referenzierten Datei die Länge, die Dezimalstellen und die Art dieses Feldes wissens. Sobald ich die SRCDTA habe kann ich dies ja über Substring herausfinden.

Dazu hätte ich aber ein paar Fragen:
1. Kann ich über einen einfachen read aus dieser Datei lesen und die Daten in SRCSEQ SRCDTA und SRCDAT schreiben lassen? Wie müsste dieser read aussehen? (Ein Beispiel wäre sehr freundlich)

2. Brauche ich dann in meinem CL Programm 2 OVRDBF?

Gruß Martin

EDIT:
Tut mir Leid bin schon über was gestolpert, sollte jetzt funktionieren.(Kann ich erst morgen testen)


C open reftab
C read REFTAB cmdrec
C dow NOT %eof(reftab)
C eval name2 = %subst(srcdta:19:10)
C if name=name2
C eval laenge = %subst(srcdta:30:4)
C eval art = %subst(srcdta:35:1)
C eval dec = %subst(srcdta:36:2)
C endif
C read REFTAB cmdrec
C enddo
C close reftab