zOs/REXX/DSNEX
tstDsnEx: procedure expose m.
trace ?r
say dsnExists('A540769.wk.rexx')
say dsnExists('A540769.wk.rexxYY')
say dsnExists('A540769.wk.rexx(wsh3)')
say dsnExists('A540769.wk.rexx(wshNoNo)')
say dsnExists('RZ2/A540769.wk.rexx(wsh3)')
say dsnExists('RZ2/A540769.wk.rexx(wshNoNo)')
say dsnExists('RZ2/A540769.wk.rexxYY(wsh)')
return
endProceudre tstDsnEx
dsnExists: procedure expose m.
parse upper arg aDsn
parse value csmSysDsn(aDsn) with sys '/' dsn
if sys == '*' then
return sysDsn("'"dsn"'") == 'OK'
else if dsnGetMbr(dsn) == '' then do
lc = adrCsm('dslist system('sys') dsnMask('dsn') short', 4)
if stemsize = 0 | stemSize = 1 then
return stemSize
call err 'csmExists stemSize='stemsize 'for dsn='aDsn
end
else do
call adrCsm "mbrList system("rz") dataset('"dsnSetMbr(dsn)"')",
"member("dsnGetMbr(dsn)") index(' ') short"
do ix=1 to mbr_mem#
say = mbr_name.ix
end
if mbr_mem# = 0 | mbr_mem# = 1 then
return mbr_mem#
call err 'csmExists mbr_mem#='mbr_mem# 'for dsn='aDsn
end
call writeDD inDD, 'I.', mbr_mem#
endProcedure dsnExists