Hola Foro
Nunca antes habia intentado hacer una seleccion SQL en un programa dos veces sobre un mismo fichero. evidentemente con parámetros diferentes para que me de diferente resultado. Ahora lo pruebo con una subrutina como la que incluyo abajo,  
y el caso es que parece que no me cierra el cursor y hace las dos veces la misma seleccion aunque le cambie el SeleccSQL. Como podeis ver es todo la misma subrutina i tendria que hacerlo todo de un tirón,pero me contesta con los mismos datos de antes. En la compilación del programa está
la opcionCLOSQLCSR    peo sólo es para fin de programa. Sabeis qé puede pasar?
Gracias        
 C     Srbuscadades  Begsr                                          
 C/EXEC SQL Prepare sentencia from :SeleccSQL                      
 C/END-EXEC                                                        
 C/EXEC SQL declare @cursor Cursor for Sentencia                    
 C/END-EXEC                                                        
  *                                                                
 C/Exec sql                                                        
 C+ open  @CURSOR                                                  
 C/end-exec                                                        
  *                                                                
 C                   Dow       sqlcod <>100 and sqlcod>=0          
 C/Exec sql                                                        
 C+ FETCH NEXT FROM @CURSOR INTO :article, :unitat, :servit        
 C/end-exec                                                        
 C                   If        sqlcod<>100 and sqlcod>=0            
 C                   Exsr      Srcalkil                            
 C                   Add       kilos         @servitkg              
 C                   Endif                                                  
 C                   Enddo                                                  
   *                                                                          
 C/Exec sql                                                                  
 C+ CLOSE @CURSOR                                                            
 C/end-exec                                                                  
 C                   Endsr                                                  

Responder a