|
Hello Phil, Since no-one else has been able to properly assist you I decided to take a look at this. There are a number of things wrong with your code: 1/ The SQL precompiler does not understand typedefs and that is why the structure is flagged as unusable. If you look closely at the SQL compiler listing you'll see: Data Names Define Reference hostDS **** 31 the **** indicate the data name has NOT been defined. 2/ You are attempting a multi-row fetch so you should tell the compiler. Specify FOR 10 ROWS on the FETCH since your structure has room for 10 rows. 3/ I also wouldn't use the word CURSOR for the cursor name since CURSOR is an SQL reserved word. 4/ Although not required, host variables should be defined within BEGIN DECLARE and END DECLARE blocks to indicate they are used by SQL. 5/ The example you show as being from the SQL Host Programming manual, isn't as it is in the manual. In my version the example on page 26 is a single record fetch and it does not use a typedef for the structure. The multi record fetch example is on page 30 and although incomplete does show the "FOR n ROWS" clause and the use of a struct rather than a typedef. The example is incomplete so I have completed it and altered it to work with your supplied EMPLOYEE file. EXEC SQL BEGIN DECLARE SECTION; _Packed struct {char first_initial; char middle_initial; _Packed struct {short lastname_len; char lastname_data[15]; } lastname; double total_salary; } employee_rec[10]; struct { short inds[4]; } employee_inds[10]; EXEC SQL include SQLCA; EXEC SQL END DECLARE SECTION; int main() { EXEC SQL DECLARE C1 CURSOR FOR SELECT SUBSTR(FIRSTNAME,1,1), MIDINIT, LASTNAME, SALARY+BONUS+COMM FROM CORPDATA.EMPLOYEE; EXEC SQL OPEN C1; EXEC SQL FETCH C1 FOR 10 ROWS INTO :employee_rec:employee_inds; } Regards, Simon Coulter. -------------------------------------------------------------------- FlyByNight Software AS/400 Technical Specialists http://www.flybynight.com.au/ Phone: +61 3 9419 0175 Mobile: +61 0411 091 400 /"\ Fax: +61 3 9419 0175 mailto: shc@flybynight.com.au \ / X ASCII Ribbon campaign against HTML E-Mail / \ --------------------------------------------------------------------
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.