PDA

View Full Version : View und DDS



Robi
19-08-10, 08:28
Hi,
wir ändern unsere PF in der ECHT Umgebung mit CHGPF.
Der Vorteil ist ja, das die LF alle mit aktualisiert werden.
Nun haben wir einige Views auf dem System und diese werden durch den Chgpf NICHT aktualisiert.
Also, wie früher, dspdbr und alles per Hand ?
Oder gibt es noch etwas anderes?
(Ps: ein Umstellen der DDS PF auf SQL Tabel ist nicht möglich)

Robi

gue_br
19-08-10, 09:26
Ich hatte ein ähnliches Problem (V6R1M0)

Dazu gibts einen Thread von mir.

Spiel das PTF ein, dann müßte chgpf wieder gehen.

http://newsolutions.de/forum-systemi-as400-i5-iseries/system-i-hauptforum/15423-chgpf-v6r1.html

Gruß,
Günter

B.Hauser
19-08-10, 11:44
Was heißt das "werden die Views nicht aktualisiert"?

Ich ging immer davon aus, dass die Views auch beim CHGPF mitgenommen werden. (zumindest habe ich bislang noch nichts anderes gehört, allerdings habe ich schon seit Ewigkeiten keine Datei mehr mit DDS erstellt oder geändert).

Bevor Du weiteres unternimmst spiel mal das PTF aus der vorigen Meldung ein.

Ansonsten habe ich vor einiger Zeit mal ein Progrämmchen geschrieben, das die Catalogviews SYSVIEWS und SYSVIEWDEP verarbeitet, die SQL-Statements zum Erstellen der Views ermittelt, sich wegsichert und anschließend wieder erstellt. (Der Grund für diese Aktion war, dass ich für eine Testumgebung die Views, die z.T. 4 oder 5 stufig waren in der richtigen Reihenfolge erstellen musste.)

Auf der anderen Seite gibt es auch (kostenlose) Change Management Systeme oder Cross Reference Systeme, mit denen Dein Problem einfach gelöst werden könnte. ChangefIt und XrefIt wären solche freie Tools. Weitere Informationen kann man unter EcofIT Limited (http://www.ecofitonline.com) finden.

Birgitta

jajonowak
19-08-10, 11:50
Hi Robi,

kann es sein das die LF´s einen anderen Satznamen haben?

Robi
19-08-10, 13:01
Was heißt das "werden die Views nicht aktualisiert"?


select datei1.*, datei2.* from datei1 left outer join datei 2 ...

nach einem chgpf auf Datei 1 mit 2 neuen Feldern fehlten diese in der View.

Ich werde mal den Kd beauftragen seine PTF's zu prüfen
Danke
Robi

B.Hauser
20-08-10, 06:25
select datei1.*, datei2.* from datei1 left outer join datei 2 ...

nach einem chgpf auf Datei 1 mit 2 neuen Feldern fehlten diese in der View.


Da hast Du vermutlich Pech (sowohl beim CHGPF als auch beim ALTER TABLE). Wenn ich mich recht erinnere wird nicht SELECT FILE.* From ... gespeichert, sondern der Befehl wird zur Sicherung (und damit für die spätere Aktualisierung) aufgelöst, d.h. SELECT FILE.FLD1, FILE.FLD2 ... FILE.FLDN From...
In diesem Fall wird zwar die View aktualisiert, aber die neuen Felder können damit nicht automatisch übernommen werden.
Wahrscheinlich bleibt Dir nichts anderes übrig, als die Views nach Datei-Erweiterung neu zu erstellen.

Ich persönlich erstelle meine Views nach einer Datei-Erweiterung immer neu und in meinen Skripts, die ich mit RUNSQLSTM ausführe steht SELECT * an den Stellen an denen es erforderlich ist. ... aber das ist Geschmacksache (mir tut es jedenfalls nicht weh, da View keinen Zugriffsweg haben sind sie auch ratzfatz erstellt).

(Das Programm, das ich zuvor erwähnt habe ist dabei recht hilfreich)

Birgitta

andreaspr@aon.at
20-08-10, 07:00
Mit DSPFD kann man sich die Aufschlüsselung der VIEW anzeigen lassen.

BenderD
20-08-10, 07:02
... die sind ja mittlerweile richtig gut, so eine View überlebt tatsächlich sogar einen alter table (drop table räumt ab) , naja fast gut - anschließend steht in der File Description das create statement mit select * drin, was natürlich dann gelogen ist.

D*B


Da hast Du vermutlich Pech (sowohl beim CHGPF als auch beim ALTER TABLE). Wenn ich mich recht erinnere wird nicht SELECT FILE.* From ... gespeichert, sondern der Befehl wird zur Sicherung (und damit für die spätere Aktualisierung) aufgelöst, d.h. SELECT FILE.FLD1, FILE.FLD2 ... FILE.FLDN From...
In diesem Fall wird zwar die View aktualisiert, aber die neuen Felder können damit nicht automatisch übernommen werden.
Wahrscheinlich bleibt Dir nichts anderes übrig, als die Views nach Datei-Erweiterung neu zu erstellen.

Ich persönlich erstelle meine Views nach einer Datei-Erweiterung immer neu und in meinen Skripts, die ich mit RUNSQLSTM ausführe steht SELECT * an den Stellen an denen es erforderlich ist. ... aber das ist Geschmacksache (mir tut es jedenfalls nicht weh, da View keinen Zugriffsweg haben sind sie auch ratzfatz erstellt).

(Das Programm, das ich zuvor erwähnt habe ist dabei recht hilfreich)

Birgitta

Robi
20-08-10, 07:26
@Birgitta
Das Problem ist, wie so oft, viele Köcher verderben den Brei.

Will sagen: Kundenumgebungen, auf dehnen x Entwicker mit Ihren unterschiedlichen Wissensständen und Arbeitsmethoden arbeiten sind schwer zu managen (Zumindest, wenn es keinen Manager gibt). Jede mögliche Fehlerquelle wird gnadenlos ausgenutzt.

Danke an alle
Gruß
Robi

Fuerchau
23-08-10, 10:37
Ich würde mich auch heftig dagegen verwehren, wenn ein CHGPF die Struktur meiner VIEW verändern würde.
Ein SELECT * wird ja schließlich auch bei embedded SQL zur Compile-Zeit aufgelöst und nicht zur Laufzeit.
Ein Alter Table/CHGPF stört daher laufende Programme nicht, solange die Struktur der vorherigen Felder erhalten bleibt.
Und was die LF's angeht, so werden nur diese mit identischem Formatnamen wie die PF angpasst.

Insofern verhält sich die AS/400 da korrekt wie jede andere SQL-Datenbank.