View Full Version : Wie ändere ich in vielen CL-Quellen "automatisch" einen String in einen anderen?
Kann man irgendwie mittels SQL auf eine 2. und alle weitere Teildateien eine Datei zugreifen oder kann man das mittels des Querymanagers realisieren?
Kann man mittels COBOL oder RPG auf die unterschiedlichen Teildateien der Dateien zugreifen?
Im speziellen Fall müssen in ca. 1900 CL-Sourcen fest eingegebene Bilibliotheksnamen durch einen anden Namen ersetzt werden.
Da ich zur Zeit keinen Weg weis, das zu automatisieren, bin ich über jeden Vorschlag der mir das erspart dankbar.
Besonders erfreut bin ich über die Lösungsvorschläge die sich mit Cobol, RPG, CL, SQL, QM, Delphi/400 oder dem OM realisieren lassen. Ansonsten könnten ich noch einen Änderungsdienst über ODBC laufen lassen, wenn dazu jemand etwas Kluges sagen kann.
Danke im Voraus
Burkhard
Hallo Butkhard,
verwende
DSPFD FILE(ASMTOOL_S/QCLLESRC) TYPE(*MBRLIST) OUTPUT*OUTFILE) OUTFILEQTEMP/X)
Damit erhälst Du eine Datei mit allen Member Einträgen
Mit einem kleinen RPG Programm kann man die Member lesen
und den String suchen und zurückschreiben.
Vorher aber ein OVRDBF auf die entsprechende Teildatei.
Gruss
Michael
Hallo Burkhard,
um per SQL an die einzelnen Teildateien zu kommen, musst Du einen OVRDBF vorab machen:
OVRDBF FILE(SRC) TOFILE(LIB/QPRGSRC) MBR(MBR)
und anschließend im SQL mit SELECT * FROM SRC etc. bearbeiten.
Du könntest quick&Dirty ein CL schreiben, was als Parameter Lib. Fil, Mbr het und aus dem MBRPDM heraus per Kurzbefehl & F13 (mit F16 definieren) aufgerufen wird.
Dies CL macht den OVRDBF und ruft anschließend ein SQL oder sonst ein Programm auf, was die Umsetzung macht.
Gruß
Christian
In CLP ist kein DSPFD erforderlich, da mittels RTVMBRD die Teildateien abgearebitet werden können: MBR(*NEXT).
Der OVRDBF ist natürlich erforderlich.
Per SQL den Update durchzuführen ist insofern kritisch, als dass der neue Wert mittels SUBSTR und POSSTR und CONCAT zusammengebaut werden muss.
In RPG/COBOL kann ich natürlich den Feldinhalt besser korrigieren.
Übrigens:
In ILERPG kann ich in den F-Bestimmungen eine Variable zur Übergabe des Member-Namens angeben, USROPN ist allerdings zusätzlich erforderlich.
vielleicht sowas ?
SCAN & REPLACE TEXT (SCNRPLSRC)
Auswahl eingeben und Eingabetaste drücken.
ENTER FILE NAME . . . . . . . . Name
LIBRARY . . . . . . . . . . . *LIBL Zeichenwert, *LIBL
ENTER MEMBER NAME . . . . . . . *ALL *ALL, NAME, GENERIC*
STRING TO FIND . . . . . . . . .
VALUE TO REPLACE WITH . . . . .
IGNORE CASE . . . . . . . . . . *YES *YES, *NO
Gruss
WL
Danke für die vielen hilfreichen Tipps.
Ich werde mir das passende daraus aussuchen.
Ich denke mal das mit dem Substring und der Position ist mit am sympatischten, da ich dann mittels SQL hier wieder alle "verblüffen" kann, was alles geht.
Könnte man eigentlich auch mit SQL:CREATE ALIAS für die einzelnen Teildateien arbeiten.
Ich habe mich damit noch nicht ernsthaft beschäftigt.
Schönes Wochenende wünscht
Burkhard
vielleicht sowas ?
SCAN & REPLACE TEXT (SCNRPLSRC)
Auswahl eingeben und Eingabetaste drücken.
ENTER FILE NAME . . . . . . . . Name
LIBRARY . . . . . . . . . . . *LIBL Zeichenwert, *LIBL
ENTER MEMBER NAME . . . . . . . *ALL *ALL, NAME, GENERIC*
STRING TO FIND . . . . . . . . .
VALUE TO REPLACE WITH . . . . .
IGNORE CASE . . . . . . . . . . *YES *YES, *NO
Gruss
WL
Ahem ... was bitte ist das für ein Befehl und wo finde ich den.
Zumindest im Befehlssatz unserer beiden iSeries ist er nicht enthalten.
Ich bin zugegebener Maßen hochinteressiert!
Burkhard
Klar geht auch Create Alias, allerdings 1900-Mal Create Alias / Drop Alias !
Da ist ein OVRDBF doch einfacher.
kuempi von stein
18-11-05, 12:26
Ahem ... was bitte ist das für ein Befehl und wo finde ich den.
Zumindest im Befehlssatz unserer beiden iSeries ist er nicht enthalten.
Ich bin zugegebener Maßen hochinteressiert!
Burkhard
guckst du hier
http://www.iseriestools.com/