PDA

View Full Version : qsh



Seiten : 1 [2] 3

volkerK
11-09-18, 14:25
Hallo,

so habe jetzt alles so wie ich es will.

Das mit den API bzw SQL werde ich mir am wochenende anschauen.

Vielen Dank nochmals

Volker.

kitvb1
12-09-18, 05:09
Sorry, dass ich spät zur Party angekommen.

Leider sind die Article (INN Newsletter & Systemi Magazine) Links nicht mehr verfügbar. Ist aber hier zu lesen: http://www.support.ecofitonline.com/showthread.php/258-Listing-a-Directory-Tree-Contents
CLLE pgm:

/************************************************** ******************/
/* SYSTEM - Systems */
/* AUTHOR - Deon A von Blerk (EcofIT Ltd) */
/* DATE - 25/01/09 */
/* Description - List the IFS files for a directory tree */
/* */
/* MODIFICATION HISTORY */
/* ==================== */
/* Date Nr By/Reason */
/* ---- --- --------- */
/************************************************** ******************/
PGM PARM(&AttchPath &DocName &PgmError)
DCL VAR(&AttchPath) TYPE(*CHAR) LEN(64)
DCL VAR(&DocName) TYPE(*CHAR) LEN(32)
DCL VAR(&QSHSTMT) TYPE(*CHAR) LEN(200)
DCL VAR(&Exists) TYPE(*CHAR) LEN(2)
DCL VAR(&PgmError) TYPE(*CHAR) LEN(2)

MONMSG MSGID(CPF0000 QSH0000) EXEC(GOTO CMDLBL(FAIL))

/************************************************** ******************/
/* Create the workfiles */
/************************************************** ******************/
DLTF FILE(QTEMP/QSHLIST)
MONMSG MSGID(CPF0000)
CRTPF FILE(QTEMP/QSHLIST) RCDLEN(200)
DLTF FILE(QTEMP/QSHFIND)
MONMSG MSGID(CPF0000)
CRTPF FILE(QTEMP/QSHFIND) RCDLEN(200)

/************************************************** ******************/
/* Fill the data */
/************************************************** ******************/
OVRDBF FILE(STDOUT) TOFILE(QTEMP/QSHLIST) OVRSCOPE(*JOB)
CHGVAR VAR(&QSHSTMT) VALUE('ls -lRT' *BCAT &AttchPath)
QSH CMD(&QSHSTMT)
DLTOVR FILE(STDOUT) LVL(*JOB)

OVRDBF FILE(STDOUT) TOFILE(QTEMP/QSHFIND) OVRSCOPE(*JOB)
CHGVAR VAR(&QSHSTMT) VALUE('find' *BCAT &AttchPath *TCAT '*')
QSH CMD(&QSHSTMT)
DLTOVR FILE(STDOUT) LVL(*JOB)

/************************************************** ******************/
/* Now check if the document exists */
/************************************************** ******************/
CALLPRC PRC(IFS50R) PARM(&DocName) RTNVAL(&PgmError)
GOTO CMDLBL(PERFECT)

/************************************************** ******************/
/* Fail */
/************************************************** ******************/
FAIL:
DLTF FILE(QTEMP/QSHLIST)
MONMSG MSGID(CPF0000)
DLTF FILE(QTEMP/QSHFIND)
MONMSG MSGID(CPF0000)
CHGVAR VAR(&PgmError) VALUE('01')

/************************************************** ******************/
/* EOJ */
/************************************************** ******************/
PERFECT:
ENDPGM

SQLRPGLE pgm:


Declare QSHDocs_csr cursor for
with ListOut as
(select
locate(':', QSHList, 51) -1 as Offset,
QSHList
from QSHList
where substr(QSHList, 13, 1) = '1'
)
select distinct QSHFind,
substr(QSHList, 47+Offset-5, 12) as DateTime,
substr(QSHList, 55+Offset) as Document,
substr(QSHList, 15, Offset+1) as Owner
from QSHFind, ListOut
where QSHFind like '%' concat trim(:DocName) concat '%'
and substr(QSHList, 55+Offset)
like '%' concat trim(:DocName) concat '%';

volkerK
13-09-18, 15:10
Hallo,
da habe ich ja noch eine Antwort bekommen , Vielen Dank dafür.

Schön ist , wenn ich das jetzt richtig verstehe , dass ich beim QSH den Pfad mit angeben kann . Dann brauche ich den CD nicht mehr.

Und ganz besonders tollfand ich dass man im SQL den CONCAT auch so benutzen kann , habe den immer mit nur 2 Feldern (Concat (feldA,FeldB)) benutzt und dann ging imer eine regelrechte concat schlacht los.

Gruss Volker.

Fuerchau
13-09-18, 15:39
Lesen bildet....steht alles im Handbuch;-).

malzusrex
14-09-18, 07:04
Lesen bildet....steht alles im Handbuch;-).

Baldur! Bitte keine Fremndwörter!

Was bitte ist ein Handbuch...
;-)

Gruß
Ronald

Fuerchau
14-09-18, 08:43
Ok, neudeutsch => PDF.

AG1965_2
14-09-18, 09:29
Dieses Auslesen von-bis hat man ganz früher gemacht, zu S/34-Zeiten, da gab es sonst nichts.
Problem: wenn sich in einem Release mal was verschoben hat, musste man korrigieren.

Vielleicht tust Du Dir mit "QRYIFSLIB" leichter. Kann man von der IBM downloaden, link auf der Seite.
https://www-01.ibm.com/support/docview.wss?uid=nas8N1019580

Fuerchau
14-09-18, 18:31
Inzwischen gibt es selbst dafür sogar SQL-Funktionen (frag mal Birgitta).

AG1965_2
19-09-18, 10:43
Nein, jetzt frage ich Dich, da Du der bist, der dauernd SQL für alles Mögliche ins Rennen führt, aber ohne link oder sonst irgendwas, was einem helfen könnte.
Dafür der armen Birgitta Arbeit machen.

Wie kann ich denn mit SQL ein Inhaltsverzeichnis eines IFS-Verzeichnis erhalten?
(Das Outfile von RTVDIRINF abfragen gilt nicht!)

In den SQL Services finde ich jedenfalls nichts dazu.
https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_73/rzajq/rzajqservicessys.htm

BenderD
19-09-18, 10:58
Nein, jetzt frage ich Dich, da Du der bist, der dauernd SQL für alles Mögliche ins Rennen führt, aber ohne link oder sonst irgendwas, was einem helfen könnte.

... das wird ja immer toller, ein Forum ist doch kein Wunschkonzert und schon gar nicht unter Nennung des Interpreten. Ein Forum lebt davon, dass freundliche Kollegen Hilfestellung anbieten, ohne Bezahlung und wem das nicht schnell oder ausführlich genug geht, der kann gefälligst selber nachsehen!

D*B