× 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.



Howdy All;
I am a newbie and am still trying to learn RPG. I have a question regarding
CL programming. Is embedded SQL supported in CL programs? If so, are SELECT
statements supported?

I want to do something like

(only an example SQL statement).
'SELECT CSTNUM,  CSNAME,  CSADD1, CSADD2, CSCTST, CSZIP from MYLIB.CSTMST
WHERE CSTNUM = 'PARM1';

CSTNUM is a character field with length 10.

Would I do a RUNSQLSTM in my CL program?

I posted this question in rpg group but I was advised that it would be more
appropriate to post it here. One of the members suggested to go the WRKQRY
route but I already have CL programs which do the selection of fields by
taking in a parameter 'PARM1' and then search the file's and bring back the
results. I do not want to go the WRKQRY route. I just want to modify those
existing CL's so that I can convert them into SQL in CL or something along
those lines. The CL program's that I am working with are something like the
following..

******************************
*******************************************************************************************************************************
             PGM
/*                                                                   */
             DCL        VAR(&MSG) TYPE(*CHAR) LEN(512) /* TEMP MESSAGE BUILT
*/
             DCL        VAR(&MSGL) TYPE(*CHAR) LEN(4)  /* LENGTH OF MESSAGE
*/
             DCL        VAR(&SMSG) TYPE(*CHAR) LEN(2000) /* IN-LINE QUERY
MES */

    /* ------------------------ */
    /* BUILD MESSAGE..SINGLE PARM   */
    /* ------------------------ */
                     /* IF EXISTING MESSAGE IS NOT BLANK AND IN *ADD */
                     /*    INTO MESSAGE                              */

             IF         COND(&SMSG *NE ' ') THEN(DO)
             CHGVAR     VAR(&SMSG) VALUE(&SMSG *BCAT '*AND ')
                        ENDDO
                                          /*  1      2    3     4  */
             CALL       PGM(QRYSELP) PARM('CISTYP' '006' 'L' '0001' +
                          '*NE' &MSG &MSGL)
                        /*  5     6    7   */

                       /* ATTACH CREATED MESSAGE ONTO EXISTING MESSAGE */
             CHGVAR     VAR(&SMSG) VALUE(&SMSG *BCAT &MSG)

             CALL @@BOMB@@        /* KILL CL AND TAKE A DUMP TO SEE RESULTS
*/
 ENDPGM:     ENDPGM

                 /* --------------------------------------------------*/
                 /* DESIRED MESSAGE ..  (CISTYP *NE "L")              */
                 /* --------------------------------------------------*/
      /*              1.  DATABASE FIELD NAME                            +
                      2.      LENGTH OF FIELD NAME (NOT FIELD LENGTH)    +
                      3.  PARMATER TO BE PASSED  (MAX LNGTH 256)         +
                      4.      LENGTH OF PARAMETER                        +
                      5.  OPERATION PARM                                 +
                          VALID PARMS   *EQ   *LT  *LE  *CT              +
                                        *NE   *GT  *GE                   +
                      6.  VARIABLE WHERE MESSAGE WILL BE PLACED          +
                      7.  LENGTH OF VARIABLE                             */


***************************************************************************************************************************************************************

I would really appreciate it if somebody could point me in the right
direction.

Thanks in advance.

Jake.

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.