-
Querys in SQL wandeln und setsppfp
Hallo zusammen,
ich möchte gern die alten Querys mit Hilfe einer Programms in SQL Befehle umbauen.
So weit so gut, wenn da nicht die verschiedenen Outputs wären.
Bisher geh ich wie folgt vor:
1. Bibliotheksliste holen
2. In Schleife die DSPOBJD aller Querys holen
3. RTVQMQRY pro Query
4. mit SQL die Überflüssigen Zeilen löschen (alles mit SRCSEQ <
(select min(srcseq) from xy where upper(srcdta) like '%SELECT' )
Damit habe ich alle Selects.
Nun fiel mir auf, dass sämtliche Output Angaben fehlen.
Ich bin dann bei meiner Suche auf Folgendes gestoßen:
Code:
QryObj = Qrslvsp(X'1911' :%trimr(file): %trimr(library): x'0000') ;
QryPointer = setsppfp(QryObj);
QryPointer = setsppo(QryPointer:260);
MemCpy(%Addr(Output):QryPointer:%size(Output));
Leider brach das bei setsppfp schon mit MCH6801 ab, da meine QSECURITY bei 40 liegt.
Hat von Euch jemand einen Lösungsvorschlag?
Gibt es eine Alternative zu setsppfp?
Bin für jede Hilfe dankbar!
mfG
-
Etwas aufwändiger per DMPOBJ und Auswertung des Spools.
-
Vorsicht mit RTVQMQRY ALWQRYDFN(*YES oder *ONLY).
Der setzt die "Art der Verknüpfung" nicht (immer) richtig um.
Zumindest bis V5R4 wird immer ein "inner join" draus.
-
Danke euch Beiden!
Das von Pikachu muss ich noch prüfen.
Ansonsten hab ich das Problem jetzt tatsächlich mit nem dmpobj umgangen:
DMPOBJ OBJ(LIB/PGM) OBJTYPE(*QRYDFN)
CPYSPLF FILE(QPSRVDMP) TOFILE(QTEMP/SPOOLPF) CTLCHAR(*FCFC)
Code:
with Dump as ( select row_number() over() rw , substr(info, 89, 32) info
from qtemp/spoolpf),
Stern as (
select rw
from dump
where info like '%*%')
select substr(info, locate('*CHANGE', info) -38, 10) Fil,
substr(info, locate('*CHANGE', info) -26, 10) Lib,
substr(info, locate('*CHANGE', info) -14, 10) Mbr,
substr(info, locate('*CHANGE', info) -2, 1) Typ
from (
select d2.info concat d1.info concat d3.info info
from dump d1
join stern on d1.rw = stern.rw
join dump d2 on d1.rw-1 = d2.rw
join dump d3 on d1.rw+1 = d3.rw
) a where substr(info, 40) like '%*CHANGE%'
fetch first row only
Jetzt nur noch anhand der Infos den SQL vervollständigen.
-
Im Query wird die Art der Verknüpfung ja über eine Auswahl 1/2/3 geregelt.
Diese drückt sich leider nicht im SQL aus, da die Beziehung durch RTV nicht per Join sondern im Where aufgelöst wird. Und dies ist dann leider immer ein Inner Join!
In diesem Fall ist leider eine manuelle Nachbearbeitung erforderlich.
-
Servus,
ich greife mal dieses alte Thema auf.
Gibt es mittlerweile eine komfortable Möglichkeit aus den alten Qry ein SQL zu generieren?
Gruß
Sven
-
Klar,
http://newsolutions.de/forum-systemi...s/449-B-Hauser buchen. Dann gibt's Schulung PLUS performante SQLs on-the-job.
-
Robert, tztzzz ...
... so sehr ich es auch Birgitta gönnen mag.
Versuch's mal so:
RTVQMQRY QMQRY(myLib/myQuery) SRCFILE(myLib/mySource*) ALWQRYDFN(*YES)
*z.B. QSQLSRC
kf
-
Aber Karl...
wir wissen doch, dass die Qualität von Ergebnissen außerhalb der Komfortzone des Entwicklers liegt.
;-)
-
Wie bereits oben beschrieben, liefert der RTVQMQRY ausschließlich das SQL.
Die fehlenden Output-Infos gibts weiterhin nur mit den oben genannten Hilfsmitteln.
Zu beachten ist lediglich, dass der erstellte Query übrigens immer einen Inner join produziert, da die Joinbeziehung in der Where-Klausel steht.
Die Art der Beziehung (1, 2, 3) aus dem QRYDFN bekommt man leider nur per WRKQRY.
-
Moin moin,
versuche es jetzt mal mit RTVQMQRY. Ist auch eine gute Gelegenheit mal die nicht mehr benötigten QRY auszumisten. Sammelt sich doch viel an.
Danke für die schnellen Tips.
-
Zitat von Fuerchau
Wie bereits oben beschrieben, liefert der RTVQMQRY ausschließlich das SQL.
Die fehlenden Output-Infos gibts weiterhin nur mit den oben genannten Hilfsmitteln.
Zu beachten ist lediglich, dass der erstellte Query übrigens immer einen Inner join produziert, da die Joinbeziehung in der Where-Klausel steht.
Die Art der Beziehung (1, 2, 3) aus dem QRYDFN bekommt man leider nur per WRKQRY.
... das mit dem inner join stimmt so nicht mehr.
D*B
Similar Threads
-
By AK1 in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-12-14, 12:18
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks