View Full Version : ovrdbf und sql
Hallo Forum!
Stehe vor einem Problem.
Wir sind gerade dabei unsere ganze Datenbasis von DDS auf DDL umzustellen, viele alte Programme sollen aber noch genauso weiterlaufen wie bisher.
In einigen Listen-Programmen wird mit Workfiles gearbeitet, diese werden im CL in die QTEMP kopiert, danach ein OVRDBF gemacht und dann eine logische Datei dazukopiert auf die ebenfalls ein OVRDBF gemacht wird. Jetzt hab ich das Problem dass ständig der Zugriffspfad auf die Originaldatei die nicht in QTEMP liegt verweist. Hab auch schon versucht die Dateien in QTEMP anders zu benennen, aber ohne Erfolg.
"Gemeinsame Zugriffspfadbenutzung durch Datei WRKLGBE2 in QTEMP".
Bitte wie kann ich das abstellen??
Will nicht jedes Programm umbauen müssen, zumal ich gar nicht weiß wo das überall eingebaut ist.
Danke!
Wie wird denn die logische Datei dazukopiert?
Mit einem CRTDUPOBJ.
Hab auch schon ein CRTLF über DDS versucht im CL, geht aber auch nicht.
Liegt die zu kopierende logische Datei in der selben Bibliothek wie die zu kopierende physische Datei? Dann müßte der CRTDUPOBJ die kopierte logische Datei eigentlich an die kopierte physische Datei hängen (das steht zumindest so im Hilfetext zum CRTDUPOBJ).
Wenn eine PF mit LF kopiert werden soll, ist es erforderlich diese mit den gleichen Zeichen anfangen zu lassen wenn man CRTDUPOBJ machen will. In diesem Fall wird der Bezug der LF zu PF mitgenommen.
Beispiel:
MYFILE PF
MYFILE01 LF
CRTDUPOBJ MYFILE* ...
Wenn man den CRTLF per DDS macht, sollte man die QTEMP dann nach vorne in die LIBL stellen, da ja der PFILE-Bezug ohne LIB-Angabe ist, damit dies funktioniert.
Bei der Umstellung von DDS auf DDL kann es bei Altprogrammen zu massiven Problemen kommen.
1. Die Formatid wird auf jeden Fall anders.
2. Der Satzformatname ist per Default mit dem Dateinamen identisch, es sei denn man gibt diesen im CREATE TABLE explizit an (RCDFMT xxxx), was aber AS/400-spezifisch ist.
3. Ohne OVRDBF ... LVLCHK(*NO) funktioniert das aber nicht, was zu weiteren Risiken führt.
4. PF mit Key gibt es als TABLE nicht. Hier ist immer ein Index erforderlich auf den dann mit obigen Risiken überschrieben werden muss. Allerdings gibt's beim Index kein RCDFMT.
Wenn eine PF mit LF kopiert werden soll, ist es erforderlich diese mit den gleichen Zeichen anfangen zu lassen wenn man CRTDUPOBJ machen will. In diesem Fall wird der Bezug der LF zu PF mitgenommen.
Sicher? Im Hilfetext zum CRTDUPOBJ steht da aber was völlig anderes.
Die Dateien heißen fast gleich, die physiche WRKLGEWP, die logische WRKLGBE2.
Der Bezug ist aber immer noch auf die physiche in der falschen Bibliothek. Nicht einmal ein OVRDBF hilft da.
@Fuerchau:
Wir haben für die alten Programme logische Dateien erstellt die gleich heißen wie die alten Physischen.
Programme die auf die neuen Dateien losgehen schreib ich gerade alle um. Haben Gott sei Dank ein Testsystem auf dem ich alles ausprobieren kann. ;-)
Liegen die logischen Dateien vor dem Kopieren in der selben Bibliothek wie die physischen Dateien?
Nein, die liegen in 2 unterschiedlichen Bibliotheken, eine für DDL eine für DDS. Wollten da eine Trennung.
Hab jetzt die original Logische gelöscht und im CL ein CRTLF über DDS gemacht, geht aber auch nicht.
Ich versteh nicht ganz warum ein OVRDBF hier nicht zieht ...
Ist die QTEMP in der Bibliotheksliste?
Eventuell hilft es, die QTEMP vor die eigentliche Quellbibliothek in die Bibliotheksliste zu setzen.
Gruß