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