View Full Version : Erstelle Physische Datei
Burgy Zapp
03-04-01, 20:21
Wie der Befehl -CRTPF- allerdings wird der Datei-Inhalt über eine Zwischendatei gerettet; Sämtliche abhängigen logischen Dateien werden gelöscht und neu erstellt.
Download URL: tools/CRTPDAT.ZIP (http://www.dukeserver.de/ftp/tools/crtpdat.zip)
Größe: 8,4 kb
Ursprung: http://www.albwerk.de/fritz/as400.htm
Dieses Tool ist nicht mehr nötig, da mittels CHGPF und Angabe einer Quelle PF-Dateien mit Berücksichtigung sämtlicher Zugriffspfade und aktueller Daten geändert werden können.
Alternativ bietet sich auch die Möglichkeit eine SQL-Befehls ALTER TABLE.
Wer kein STRSQL hat, kann diesen Befehl in eine normale SEU-Quelle stellen und mittels RUNSQLSTM ausführen.
Viel Spaß beim Ausprobieren.
- Baldur Fürchau -
Einspruch:
CHGPF funktioniert nicht immer;
RUNSQLSTM läuft nur, wenn SQL als Lizenzprogramm vorhanden ist
Gruß Günther
Vielen Dank für den Hinweis mit RUNSQLSTM.
Die Alternative hierzu ist eine kleine REXX-Prozedur, die ja auch SQL unterstützt und REXX steht eigentlich immer zur Verfügung.
Warum funktioniert denn CHGPF nicht immer ?
CHGPF funktioniert immer, wenn ein neues Feld am Ende hinzugefügt wird;
falls aber an bisherigen Feldern Änderungen vorgenommen werden, wird es u.U. problematisch;
zumindest wenn *char in *dec geändert wird, ist CHGPF ungeeignet, in anderen Fällen bin ich mir unsicher und sollten zumindest sorgfältig geprüft werden
Gruß Günther
Dies kann ich nur bestätigen - der CHGPF funktioniert nicht, wenn sich das Attribut eines Feldes ändert. Lediglich das Löschen von Feldern sowie das Hinzufügen von Felder funktioniert problemlos.
Ich sehe keinen Grund darin, das Format eines Feldes grundlegend zu ändern (z.B. CHAR->DEC) da dies immer mit Datenverlust zu tun hat. Wenn lediglich die Länge eines Feldes geändert wird, funktioniert CHGPF, da ggf. nur Teilverluste auftreten.
Bei grundlegenden Formatänderungen hilft auch das obige Tool nicht, da ein CPYF mit *MAP/*DROP keine Formatänderungen durchführen kann.
In einem solchen Fall sollte man die Daten vorher retten, mittels CHGPF das Feld löschen und anschließend neu erstellen, ggf. klappt auch direktes Ändern, da die Daten aktuell nicht rettbar sind. Anschließend mit einem Programm die Daten zurückstellen, da ja das Format geändert wurde.
Als Alternative, wenn so etwas häufiger vorkommt, kann man das Tool SQLCPY ( www.fuerchau.de (http://www.fuerchau.de) ) verwenden, da hiermit eine Vielzahl von Konvertierungen durchgeführt werden können.
Bei Nutzung einer Collection in der nur SQL-Objekte existieren, gibt es keine DDS mehr. Im as400network gibt es RTVSQLSRC und CRTSQLOBJ als Tool, mit dem man sich SQL-Scripte erstellen kann.