Hola compañeros. Una vez más con una duda que despues de haber investigado, no le encuentro lógica.
Tengo un que hacer una consulta con 0,1,2 3 parámetros dependiendo de lo que el usaurio seleccione. Y pues rapidamente hice un SP como este:
CREATE PROCEDURE sListaArticulos
@Giro INTEGER,
@Grupo INTEGER,
@SubGrupo INTEGER
AS
IF @Giro = null AND @Grupo = null and @SubGrupo = null
BEGIN
SELECT descripcion, id_uni FROM Articulos ORDER BY Descripcion ASC
END
IF @Giro <> null AND @Grupo = null and @SubGrupo = null
BEGIN
SELECT descripcion, id_uni FROM Articulos WHERE Id_Ramo = @Giro ORDER BY Descripcion ASC
END
...etcetera...
END
GO
La probé en el analizador de consultas:
Execute sListaArticulos 1,0,0, Execute sListaArticulos 1,null,null, etc.
Todo muy bien. Pero al invocarlo desde ASP, siempre me regresa -1 recordcount. Me quite de problemas e hice una SP para cada caso, lo llamo de forma condicional desde ASP y todo funciona muy bien.
Pero....
¿por qué MSSQLS al contener condiciones no regresa un cursor normal a ASP?
¿por qué será que en el analizador si funciona y en ASP no?
Gracias amigos