Foros del Web » Programando para Internet » ASP Clásico »

El Store procedure no regresa valores

Estas en el tema de El Store procedure no regresa valores en el foro de ASP Clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/06/2004, 14:38
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
El Store procedure no regresa valores

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
  #2 (permalink)  
Antiguo 03/06/2004, 04:30
 
Fecha de Ingreso: enero-2004
Mensajes: 396
Antigüedad: 21 años, 3 meses
Puntos: 0
No es que no funcione, es que te esta devolviendo el valor de recordCount a -1 a pesar de que el recordset SI que contiene valores.

Esto suele pasar en ASP dependiendo de como confiures la llamada de ADO a la base de datos.

En cualquier caso, comprueba que tienes datos en el recordset, yen vez del recordCOunt usa el EOF para saber si tienes datos.
  #3 (permalink)  
Antiguo 03/06/2004, 08:03
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Vaya, Vaya, vaya, pues muchas gracias unholy, tienes mucha razón.

Simplemente con usar rs.CursorLocation = adUseClient, todo marchó bien.

Pues gracias una vez mas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:16.