Correcto!!!! Gracias.
Ayer por no estar más tiempo estancado con esto, "tiré por la calle del medio" y lo solucioné de otro modo. Pero esta mañana al volver a retomar la tarea he leído tu mensaje
abelg y he decido que merecía la pena investigar que pasaba y probar tu sugerencia, además de ser esta más acertada por la simplicidad y quedar más escueta que la mía, y además funciona de maravilla.
¿Donde estaba el fallo? SOLUCIÓN AL CASO:
El fallo no residía, ni en los tipos, ni en el envío de los parámetros, ni mucho menos en cualquiera de los SP diseñados y presentados en este hilo, si no en el propio código del programa.
Por lo visto
para que se visualicen los resultados correctamente de la ejecución de un SP que retorna un conjunto de datos mediane cualquier SELECT, los pasos en su ejecución deben ser por este orden:
1) Cierre del ADOSP
2) Asignación de los valores a los parametros
3) Apertura del ADOSP
4) Ejecución del ADOSP
El fallo lo tenía en que no cerraba el ADOSP (me saltaba el 1er paso), por lo que aunque cambiase de parametros y ejecutase otro SELECT según los IF del ADOSP, el conjunto de datos que se mostraban en el lado cliente siempre era el mismo y daba la sensación de no funcionar o siempre ejecutarse el mismo SELECT.
Al cerrar el ADOSP y seguir los pasos enumerados anteriormente, hay que ver lo bien que funciona todo.
MORALEJA DEL CUENTO:
Si !!, se pueden controlar los flujos dentro de los ADOSP en el servidor mediante bifurcaciones IF o CASE si se necesita a partir de valores pasados por parámetro, pero siempre siguiendo el orden de los pasos en azul mencionados.
Gracias a todos y en especial a
abelg.
Espero sirva en un futuro a alguien este hilo... como siempre.