× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



And if you don't like "one off" programs I always use this cool UDF from
SQL (modify the DSPDBR to ADDTCPHTE):


The following QCMDEXC function is defined by Group Dekko, as an SQL
function on GDISYS and GDIHQ. You may not want to depend on it in a
production program, since it could be lost during system changes or
something similar, but it is useful for quick commands that need to be run
against an outfile. QCMDEXC basically executes the QCMDEXC API behind the
scenes, so you just have to format a CL command inside of the quotes to
repeatedly execute against some query result.

Please note that if you run this interactively, that you need to view all
the results, because its the behavior of SQL to only execute enough of a
list to show it on the screen. Doing something like the following is a
good workaround (ORDER BY 1 and going to the bottom of the list)


select QCMDEXC('DSPDBR FILE(' || trim(UFLIB) || '/'
||trim(UFOBJ)||
') OUTPUT(*OUTFILE) OUTFILE(QTEMP/DSPDBR) +
OUTMBR(*FIRST *ADD)')
from QTEMP/DLTOBSF ORDER BY 1






SOURCE, from operations navigator. This could be used to recreate the
function, if required.
-- Generate SQL
-- Version: V5R4M0 060210
-- Generated on: 02/22/08 10:10:48
-- Relational Database: GDIHQ
-- Standards Option: DB2 UDB iSeries

SET PATH *LIBL ;

CREATE FUNCTION ROUTINES.QCMDEXC (
CMD VARCHAR(32702) )
RETURNS CHAR(256)
LANGUAGE SQL
SPECIFIC ROUTINES.QCMDEXC
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
DISALLOW PARALLEL
NOT FENCED
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *YES ,
COMMIT = *NONE ,
DECRESULT = (31, 31, 00) ,
DFTRDBCOL = *NONE ,
DLYPRP = *NO ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *USER ,
SRTSEQ = *HEX
BEGIN
DECLARE RETCMD CHAR ( 256 ) ;
DECLARE SQLCODE INTEGER ;

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

BEGIN
SET RETCMD = 'ERROR SQLCODE=' || TRIM ( CAST ( SQLCODE AS CHAR ( 10 ) ) )
|| ' ' || CMD ;
END ;
BEGIN
DECLARE CMDLEN DEC ( 15 , 5 ) ;
SET RETCMD = CMD ;
SET CMDLEN = LENGTH ( TRIM ( CMD ) ) ;
CALL QCMDEXC ( CMD , CMDLEN ) ;
END ;
SET RETCMD = CONCAT ( RETCMD , CMD ) ;
RETURN ( RETCMD ) ;
END ;


Rob Berendt

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.