You need to FETCH rows from your declared cursor, depositing the data into a 
data structure.  Here's one I prepared earlier ;) ...

      C/EXEC SQL                                                         
      C+ DECLARE C1 CURSOR FOR                                           
      C+    SELECT * FROM ELA, ILM                                       
      C+    WHERE ELA.AORD = :W@ORDR                                     
      C+    AND ELA.ALOC = ILM.WLOC                                      
      C+    AND ELA.AWHS = ILM.WWHS                                      
      C+    ORDER BY ELA.AORD, ILM.WZONE, ILM.WPIKS, ELA.ALINE           
      C/END-EXEC           

                                                   
       *                                               
       *  Open up the SQL query defined above.         
       *                                               
      C/EXEC SQL                                       
      C+ OPEN C1                                       
      C/END-EXEC                                       
       *                
      C                     CLEARCMBDS    Clear receiving data structure
       *                                               
       *  Fetch a row from the SQL query.              
       *                                               
      C/EXEC SQL                                       
      C+ FETCH C1 INTO :CMBDS                          
      C/END-EXEC                                       
       *                                               
                                                       
     CMBDS is just a data structure with the same 
field definitions as files ELA and ILM.  I clear CMBDS 
before each fetch, and if the fields are empty after 
the fetch, I know that's the end of my selection.

Also, a gotcha - if the program variable W@ORDR 
changes, you need to close the SQL cursor and reopen 
before the SQL fetch will work correctly.

Regards,
Ray                                           
______________________________ Reply Separator 
_________________________________
Subject: V3R2: EMBEDDED SQL
Author:  MIDRANGE-L@midrange.com at INTERNET
Date:    15/04/97 16:32


I'm attempting to code an embedded SQL select 
statement for a cursor by building the SQL statement, 
preparing it, and then opening the associated cursor.

I keep getting no records returned.  The SQL select 
looks fine.  Can anyone provide some help?

Here's the code:
D SQLSTR          S            256A                    
D*                                                    
C/EXEC SQL                                             
C+ DECLARE WRKEMPCR CURSOR                             
C+    FOR DYNSQLSTMT                                   
C/END-EXEC                                             
C                   EVAL      SQLSTR = 'SELECT * FROM AFILE +         
C                                 WHERE FLD1 = ' +                    
C                                 VALUE1 +                             
C                                 ' ORDER BY FLD2, FLD3'             
C*                                                                      
C/EXEC SQL                                                              
C+                  PREPARE DYNSQLSTMT                                  
C+                    FROM  :SQLSTR                                     
C/END-EXEC                                                              
C/EXEC SQL                                                 
C+                  OPEN      WRKEMPCR                     
C/END-EXEC                                                 
umidr

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* This is the Midrange System Mailing List!  To submit a new message,   *
* send your mail to "MIDRANGE-L@midrange.com".  To unsubscribe from     *
* this list send email to MAJORDOMO@midrange.com and specify            *
* 'unsubscribe MIDRANGE-L' in the body of your message.  Questions      *
* should be directed to the list owner / operator: david@midrange.com   *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.