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



I'm having trouble compiling a QRPGLESRC program that uses embedded SQL.
Let me state first that I'm not very familiar with embedded sql, so you
can expect to see something stupid here.
 
My goal is to have a subfile loaded dynamically with data matching a
wildcard entered by the user in a field in the SFLCTL format. I need the
subfile to be populated with the results of the following sql
statement:
select fielda, fieldb from lib/file where upper(fielda) like '%X%'
(where X is the wild card value from the field in the SFLCTL format.
 
Following recommendations and examples from a medley of articles that I
have gathered about embedding sql, I have defined a stand alone field
which contains the static part of the sql statement. Then, using CAT, I
complete the statement with the dynamic portion (quotes, percent signs
and the wild card value) into another stand alone field that I named
SQLSTMT. So, if the user enters 'AMB', the field SQLSTMT contains:
select CUJGTX, CUJHTX from COREDTA10/RECUREP where upper(CUJGTX) like
'%AMB%'
 
Then I coded the prepare:
C/EXEC SQL                  
C+ PREPARE SEL FROM :SQLSTMT
C/END-EXEC
 
followed by the cursor declaration:
C/EXEC SQL                              
C+ DECLARE PREMCSR SCROLL CURSOR FOR SEL
C/END-EXEC   
 
and the cursor opening:
C/EXEC SQL     
C+ OPEN PREMCSR
C/END-EXEC     
 
Finally, in the subfile load routine, I loop thru the result set to
populate the subfile:
C/EXEC SQL                                
C+ FETCH NEXT FROM PREMCSR                
C+            INTO :W02LastNm, :W02FirstNm
C/END-EXEC                                
 
When I try to compile using the CRTSQLRPGI command, I get error
*RNF5377 (The end of the expression is expected.). Below is an excerpt
of the compile list where the error occurs (lines 234 thru 241 are not
in my code but are added by the compiler):
 
   228  * Get the next row from the SQL Cursor                   
   229  *                                                        
   230 C*EXEC SQL                                                
   231 C* FETCH NEXT FROM PREMCSR                                
   232 C*            INTO :W02LastNm, :W02FirstNm                
   233 C*END-EXEC                                                
*RNF5377 20    226 013400  The end of the expression is expected.
   234 C                   Z-ADD     -4            SQLER6        
   235 C                   CALL      SQLROUTE                    
   236 C                   PARM                    SQLCA         
   237 C                   PARM                    SQL_00006     
   238 C     SQL_00009     IFEQ      '1'                         
   239 C                   EVAL      W02LASTNM = SQL_00011       
   240 C                   EVAL      W02FIRSTNM = SQL_00012      
   241 C                   END                                   
 
As I said, I'm not a sql expert, but I can't see anything wrong with
that expression.
Any suggestion would be greatly appreciated.
 
Thanks!
Val
 
Valerio Vincenti
IT Business Analyst
County of Spotsylvania, I.S. Department
Spotsylvania, VA 22553
Phone (540) 507-7507
Fax (540) 582-9841
e-mail: vvincenti@xxxxxxxxxxxxxxxxxx 


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.