PDA

View Full Version : Records kopieren



hteufl
27-06-07, 12:18
Hallo!

Ich möchte den Inhalt eines DB-Records kopieren. Ich möchte aber nicht alle Felderinhalte einzeln kopieren. Gibt es eine Möglichkeit komplette Records mit z.B. einem Pointer in den Record einer anderen DB zu kopieren?

Danke im voraus

Hermann TEUFL

kuempi von stein
27-06-07, 12:47
Hello,

der Befehl CPYF ist sehr mächtig, wenn man damit umzugehen weiss....

Man kann nach Inhalten selektieren aber auch über relative Recordnumber arbeiten.

kuempi

hteufl
27-06-07, 13:56
Hallo Kumpi von Stein!

Danke vorerst für die rasche Antwort. Ich benötige den Inhalt des Records in einem HLL Programm damit ich nachfolgend einige wenige Daten modifizieren kann.

Den Befehl CPYF kann ich bereits ist aber leider für meine Zwecke unbrauchbar.

Danke

Hermann TEUFL

Pikachu
27-06-07, 15:26
In ILE RPG geht das zum Beispiel so. (http://www.newsolutions.de/forum-systemi-as400-i5-iseries/system-i-hauptforum/12280-rpg-satzformat-von-datei-datei-b-speichern.html)

hteufl
27-06-07, 15:31
Vielen Dank!

Ich habe wieder einmal zu kompliziert gedacht! Mit den extern beschriebenen Datenstrukturen ist das Problem relativ schnell gelöst!!

Nur der Interesse halber - gäbe es auch eine Lösung mit BASED POINTER? Ich habe ein bißchen herumexperimetiert - ist aber nichts gescheites dabei herausgekommen.

Danke

Hermann TEUFL

BenderD
27-06-07, 15:43
zu der Frage mit den Pointern: leider ja

das kleinste der Übel ist wohl Ewald mit Korrosion (move corresponding ala RPG), steht in der RPG Reference, die man sich sowieso mal online legen sollte.

mfg

Dieter Bender




Nur der Interesse halber - gäbe es auch eine Lösung mit BASED POINTER? Ich habe ein bißchen herumexperimetiert - ist aber nichts gescheites dabei herausgekommen.

Danke

Hermann TEUFL

Fuerchau
27-06-07, 17:08
Bei (ILE)RPG ist ja der Name jedes Feldes nur 1x im gesamten Programm vorhanden (Ausnahme Qualified DS).

Daher spart man sich bei namensgleichheit den Move/Eval zwischen den Dateipuffern.

Das hat zwar obigen Vorteil aber häufig auch den Nachteil, dass man per I-Bestimmung die Felder ggf. umbenennen muss.

Um Pointer zu verwenden, muss man also Strukturen mit "based(mypointer)" verwenden.
Allerdings dürfen die Feldnamen zwischen den beiden Strukturen nicht identisch sein, da man ein Feld nur in einer Struktur definieren darf.
Man kann die DS natürlich dann per "qualified" defineren.
Nun kann man mit "Struktur.Name" das Feld ansprechen, aber: dieses Feld wird nicht automatisch gefüllt da die IO-Felder der Dateien nun als Single-Variablen weiterhin existieren.
Dateifelder gibts nämlich nicht mit "qualified".

Fazit:
Pointer sind für sowas absolut nicht zu gebrauchen !
In RPG gilt der Grundsatz der Namensgleichheit zwischen 2 Dateien, allerdings muss die Definition zwischen den beiden Dateien identisch sein.
Ansonsten ist man wieder beim umbenennen.