Hallo,

ich versuche mich gerade an emb SQL mit Variablenübergabe über ein dyn. Array. Ich bekomme jedoch die Fehlermeldung:
PHP-Code:
*RNF0528 20    138 004500  Index ist für einen Namender keine Feldgruppe istnicht 
                           zulässig
der Index wird ignoriert
Bei: Array(i)=FETCHDS

Hier der gesamte Code:
PHP-Code:
H DftActGrp(*NOActGrp(*CALLER)                                 
H alwnull(*USRCTL)                                               
                                                                 
D/COPY LIB/FILE,MEMBER                                  
                                                                 
DAUFNEHM          PR                  EXTPGM
('SQLSAMPLE4')       
D PARM1                               like(Array2)               
D PARM2                          1A                              
                                                                 
DAUFNEHM          PI                                             
Array                               like(Array2)               
D fcall                          1A                              
                                                                 
DArrayptr         S               
*   Inz(*Null)                 
DArray2           DS                  Dim(32767Based(Arrayptr
D                                     likeds(DSLIB)          
                                                                 
Di                S              5S 0 inz(1)                     
Dj                S              5S 0 inz(1)                     
DFetchds          DS                  likeds(DSLIB)  
                                                         
C/EXEC SQL                                               
C
+ Declare MyCsr Cursor for                              
CSelect From LIB/FILE                          
C
/End-Exec                                               
                                                         
C
/EXEC SQL                                               
C
Open MyCsr                                            
C
/END-EXEC                                               
                                                         
 
/FREE                                                   
  Arrayptr 
= %Alloc(%Size(Array) * i);                   
 /
END-FREE                                               
                                                         
C                   
do        *HIVAL                     
C
/EXEC SQL                                               
C
Fetch MyCsr                                           
C
+       into :FETCHDS                                   
C
/END-EXEC                                               
C                   
if        SQLCOD 100         
C                             
or SQLCOD < *ZEROS   
C                   
eval      fcall='E'            
C                   leave                          
C                   
endif                          
C                   eval      Array(i)=FETCHDS     
 
/Free                                             
  Arrayptr 
= %Realloc(Arrayptr: %Size(Array) * i); 
 /
END-FREE                                         
C                   
eval      i=i+1                
C                   enddo                          
C
/EXEC SQL                                         
C
Close MyCsr                                     
C
/END-EXEC                                                                
C                   
return 
Ich hätte auch noch eine Frage. Und zwar geht diese Übergabe so wenn das Array in VARP auch so definiert ist wie dieses?(mit dem Pointer und dim(32767) ) Oder wie müsste ich es definieren, denn ich weiß ja nicht wie groß das Array ist das ich zurückgebe. feste Werte sind schlecht weil sie entweder zu groß oder zu klein sind. Darum wollte ich es mit einem Dynamischen Array machen.

Gruß Martin