-
Es gibt da noch einen kleinen Trick.
QMQRY interpretiert den SQL erst nachdem die Variablen gefüllt sind.
Der Inhalt jeder Variable kann bis zu 55 Zeichen lang sein.
Nun kann man also einfach einen QMQRY erstellen:
&V1&V2&V3&V4&V5
Per CLP kann der SQL nun in einer Variablen zusammengebaut werden.
Per "
STRQMQRY ... SETVAR((&V1 (%SST(&MYCLVAR 1 55)) (&V2 (%SST(&MYCLVAR 56 55)) ....)
kann dann jeder beliebige SQL übergeben werden.
Die QM-Berechtigungsprüfung wird somit umgangen, da diese nur beim QMQRY selber vorgenommen wird.
Zur Laufzeit geht QMQRY davon aus, dass diese Prüfung bereits erfolgt ist.
Je nachdem, wie lang der SQL werden kann, soviele Variablen werden benötigt. Aber Achtung: alle Variablen müssen angegeben werden, sie können aber Leerzeichen enthalten.
-
Ich mach es mit einem Mini RPG-Programm
C/EXEC SQL
C+ EXECUTE IMMEDIATE :SqlStmt
C/END-EXEC
-
Hallo,
Ich habe hier ein Savefile mit dem entsprechenden Objekten. Dort enthalten ist das entsprechende Programm, um ein SQL in einem CL auszuführen.
Das Savefile kann ab V3R2M0 rückgesichert werden. Wer interesse hat, bitte bei mir melden. Eigentlich wollte ich die Datei hier hochladen, aber das hat leider nicht geklappt.
Viele Grüße und frohe Weihnachten wünscht euch
Matthias
-
Hallo Matthias, ich wäre an dem SAVF interessiert. Könntest Du den an herzfeldta@toepfer.com senden ?
MFG
Andreas
Andreas Herzfeldt
-
Hallo Matthias, ich wäre auch an dem SAVF interessiert. Könntest Du den an mrzik@tddk.de senden ?
MFG
mrzik
-
Hallo Matthias, kannst Du mir das SAVF auch bitte zuschicken, kalle100@web.de
Gruß Proggi
-
Hallo Proggi,
leider ist deine E-Mail Adresse nicht gültig (RCPT TO <kalle100@web.de> gescheitert: Angeforderte Aktion nicht ausgeführt: Postfach nicht verfügbar).
Gruß Matthias
-
Ich habe hier noch ein Programm gefunden, welches anscheind noch ein paar mehr Funktionen hat:
http://dbg400.net/cgi-bin/twiki/view/DBG400/ExcSql
-
savfile gewünscht
[quote=schatte;46609]Hallo,
Ich habe hier ein Savefile mit dem entsprechenden Objekten. Dort enthalten ist das entsprechende Programm, um ein SQL in einem CL auszuführen....
Hallo Matthias, bin gerade dabei mein erstes embedded sql zu erstellen und hab eure Beiträge gefunden.
Hast du das savfile noch?
Wenn ja, schicke es mir doch bitte an
michael.schwarz@k-b.de
Danke und Gruss
Michael
-
 Zitat von Fuerchau
Es gibt da noch einen kleinen Trick.
QMQRY interpretiert den SQL erst nachdem die Variablen gefüllt sind.
Der Inhalt jeder Variable kann bis zu 55 Zeichen lang sein.
Nun kann man also einfach einen QMQRY erstellen:
&V1&V2&V3&V4&V5
Per CLP kann der SQL nun in einer Variablen zusammengebaut werden.
Per "
STRQMQRY ... SETVAR((&V1 (%SST(&MYCLVAR 1 55)) (&V2 (%SST(&MYCLVAR 56 55)) ....)
kann dann jeder beliebige SQL übergeben werden.
(...)
Da gibt's aber ein Problem (arbeite unter V5R4)!
Es werden alle Variablenwerte, die ich dem SETVAR übergebe, getrimmt.
Trifft man zwischen zwei %SST, also z. B. auf Position 55, genau vor oder hinter ein Blank, so wird dieses Blank in der QMQRY-Verknüpfung &V1&V2&V3.... nicht wieder eingefügt.
Sieht in etwa so aus:
&myquery ('select a, b, c, d, e from KundenPF inner join UmsatzPF on etc=blabla WHERE a=b')
&V1 wird: %SST(&myquery 1 55) = 'select a, b, c, d, e from KundenPF inner join UmsatzPF '
&V2 wird: %SST(&myquery 56 55) = 'on etc=blabla WHERE a=b'
Im QM-Qry wird das ganze dann jedoch so zusammengesetzt:
"select a, b, c, d, e from KundenPF inner join UmsatzPFon etc=blabla WHERE a=b"
Da steigt er bei mir aus, da der Blank zwischen UmsatzPF und on verloren genagen ist!
Liegt's am Release, oder kann man bei der Variablenübergabe 'was anders machen, so dass führende/folgende Blanks den SETVAR überleben?
Danke und Gruß
Thomas
-
Nunja, im QMQRY
&V1 &V2 &V3 &V4 &V5
definieren und beim Splitten dafür sorgen, dass nur bei Leerzeichen getrennt wird.
-
Danke für den Tipp.
Das habe ich mal so umgesetzt!
Zähle ich also ab Stelle 55 zurück bis zum nächsten Blank, dann trenne ich und fülle die nächste Variable.
Einziger Nachteil: Ich kann keine Blanko-Ausdrücke wie z. B. ' abcde ' mehr verwenden, jedenfalls nicht, ohne unsicher zu sein, dass so ein String mit Blanks nicht wieder richtig zusammen gesetzt wird (SETVAR-Trim schnibbelt allles hinweg).
Naja, kann man ja mit leben.
Similar Threads
-
By redsky in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 06-12-05, 12:23
-
By RLPforum in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 15-11-05, 13:04
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 15-11-05, 12:45
-
By GHoffmann in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 07-07-05, 10:18
-
By Helwo in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 08-08-01, 09:50
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