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

Procedimientos almacenados y paginacion.

Estas en el tema de Procedimientos almacenados y paginacion. en el foro de ASP Clásico en Foros del Web. Hola, Alguien me podria decir como paginar el resultado de una consulta hecha con un procedimiento almacenado de SQL Server con ASP??? Estoy intentando buscar ...
  #1 (permalink)  
Antiguo 17/02/2005, 04:48
 
Fecha de Ingreso: febrero-2004
Mensajes: 18
Antigüedad: 20 años, 4 meses
Puntos: 0
Procedimientos almacenados y paginacion.

Hola,

Alguien me podria decir como paginar el resultado de una consulta hecha con un procedimiento almacenado de SQL Server con ASP???

Estoy intentando buscar informacion, pero no encuentro nada.

Saludos
  #2 (permalink)  
Antiguo 17/02/2005, 12:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Paginar una consulta (un recordset) da lo mismo si lo haces por código SQL o desde T-SQL en un SP, es un recordset. Busca alguno de los ejemplos de páginación y te funcionarán.
Solo por curiosidad, ¿en que BD esta tu SP?
  #3 (permalink)  
Antiguo 17/02/2005, 12:34
Avatar de akela  
Fecha de Ingreso: septiembre-2000
Ubicación: Frente a la compu
Mensajes: 660
Antigüedad: 23 años, 9 meses
Puntos: 2
no Mayakire, no funciona la paginaciòn con todas las bases de datos, de hecho yo tube que hacer un SP para poder paginar resultados en una BD Informix Online 7.0 fue todo un show porque paginar el RS no se pudo [:P]
__________________
Si quieres que las cosas sucédan

provocalas!
  #4 (permalink)  
Antiguo 17/02/2005, 14:10
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
SQL o desde T-SQL en un SP

T-SQL es el lenguaje utilizado en SQL-Server, yo nunca dije que se pudiera hacer en cualquier BS's, lo que dije es que daba lo mismo si era por código desde el ASP o por un SP.
Precisamente por eso le pregunté la BD's que esta usando.
  #5 (permalink)  
Antiguo 17/02/2005, 15:40
 
Fecha de Ingreso: febrero-2004
Mensajes: 18
Antigüedad: 20 años, 4 meses
Puntos: 0
Uso una Base de datos SQL Server, ahora mismo no tengo aqui el codigo porque estoy en casa, mañana posteo el codigo para que le echeis un ojo.

Muchas gracias
Saludos
  #6 (permalink)  
Antiguo 21/02/2005, 05:57
 
Fecha de Ingreso: febrero-2004
Mensajes: 18
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola,

Me sigue sin funcionar usando cualquier tipo de paginación, este es mi codigo:

Set objConnect = Server.CreateObject("ADODB.Connection")
objConnect.Open CadenaConexionBD
Set objCommand = Server.CreateObject("ADODB.Command")

With objCommand
.CommandText = "spTitulares"
.CommandType = adCmdStoredProc
.ActiveConnection = objConnect
End With

Set Ob_RS = Server.CreateObject("ADODB.Recordset")

Ob_RS.CursorLocation = adUseClient
Ob_RS.CursorType = adOpenStatic
Ob_RS.LockType = adLockReadOnly
Ob_RS.PageSize = 5

Ob_RS.Open objCommand

If Not Ob_RS.Eof Then

Ob_RS.AbsolutePage = 10
.....
....


El error que me da es el siguiente:

Tipo de error:
ADODB.Recordset (0x800A0CB3)
El recordset actual no admite marcadores. Puede deberse a una limitación del proveedor o del tipo de cursor seleccionado.
/apartados/noticias/index.asp, línea 92


Saludos

Última edición por Tirolo; 21/02/2005 a las 06:00
  #7 (permalink)  
Antiguo 21/02/2005, 09:59
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Simplifícalo. No uses el command ya que igual requieres generar un RS y puedes usar GetRows y BookMark's para paginar (checa algún ejemplo en las FAQ's).

Prueba con algo como:

Set objConnect = Server.CreateObject("ADODB.Connection")
objConnect.Open CadenaConexionBD
Set Ob_RS = Server.CreateObject("ADODB.Recordset")
Ob_RS.CursorLocation = adUseClient
Ob_RS.Open "Execute SP", objConnect
  #8 (permalink)  
Antiguo 21/02/2005, 10:29
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
hacer algo en el servidor web o en el servidor sql NUNCA DA LO MISMO.

Hacer una paginacion en SP SIEMPRE sera mas rapido.


edit: a menos que se trabaje con xml ...

Última edición por Muzztein; 21/02/2005 a las 10:33
  #9 (permalink)  
Antiguo 21/02/2005, 10:55
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Un último mensaje a este post.
El PROCEDIMIENTO para paginar un RecordSet generado por SQL en el Web Server o en el Servidor de SQLServer con un SP, no cambia, por eso es que da lo mismo el origen del RS.

Cita:
..paginar el resultado de una consulta hecha con un procedimiento almacenado de SQL Server
  #10 (permalink)  
Antiguo 11/06/2008, 12:39
Avatar de TheRojo  
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 6 meses
Puntos: 0
Mensaje Respuesta: Procedimientos almacenados y paginacion.

Cita:
Iniciado por akela Ver Mensaje
no Mayakire, no funciona la paginaciòn con todas las bases de datos, de hecho yo tube que hacer un SP para poder paginar resultados en una BD Informix Online 7.0 fue todo un show porque paginar el RS no se pudo [:P]

Que tal Akele. mencionas que creaste un Procedimiento Almacenado para poder realizar la paginacion.

Podrias compartirlo ?, ya que yo ando intentando hacer lo mismo.

Gracias y saludos.
  #11 (permalink)  
Antiguo 04/05/2009, 08:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Procedimientos almacenados y paginacion.

Antes que nada me presento, soy nuevo en los foros y en usar procedimientos almacenados ahora tengo una pregunta, ¿alguien me puede explicar que hace este procedimiento ? es de consulta.


CREATE PROCEDURE getFaltantes
@Alias int,
@num_pedido int,
@condicion int -- 0 Faltantes, 1 Sobrantes, 2 todos
AS
SET NOCOUNT ON;
DECLARE @SQL VARCHAR(5000);

SET @SQL = "SELECT NumAlias, nombreSuc, clave_linea, nombre_linea, Depto,"
SET @SQL = @SQL + " clave_artic,"
SET @SQL = @SQL + " nombre_artic,"
SET @SQL = @SQL + " tipoColor,"
SET @SQL = @SQL + " clasif,"
SET @SQL = @SQL + " fch_comp,"
SET @SQL = @SQL + " SUM(cant_pedida) cant_pedida,"
SET @SQL = @SQL + " SUM(cant_surtida) cant_surtida,"
SET @SQL = @SQL + " SUM(dif) dif"
SET @SQL = @SQL + " FROM ("
SET @SQL = @SQL + " SELECT"
SET @SQL = @SQL + " sw_cat_suc.NumAlias, sw_cat_suc.nombre nombreSuc, cs_cat_linea.clave clave_linea, cs_cat_linea.nombre nombre_linea, cs_cat_dpto.nom_corto Depto, "
SET @SQL = @SQL + " cs_cat_artic.clave clave_artic,"
SET @SQL = @SQL + " cs_cat_artic.nombre nombre_artic, "
SET @SQL = @SQL + " cs_cat_artic.nombre2 tipoColor,"
SET @SQL = @SQL + " cs_cat_artic.clasif, "
SET @SQL = @SQL + " cs_part_comp.cant as 'cant_pedida',"
SET @SQL = @SQL + " cs_doc_comp.fecha as 'fch_comp',"
SET @SQL = @SQL + " 0 as 'cant_surtida',"
SET @SQL = @SQL + " cs_part_comp.cant * -1 as 'dif'"
SET @SQL = @SQL + " FROM cs_doc_comp, cs_part_comp, cs_cat_artic, cs_cat_dpto, cs_cat_linea, sw_cat_suc"
SET @SQL = @SQL + " WHERE cs_doc_comp.doc_comp_id = cs_part_comp.doc_comp_id "
SET @SQL = @SQL + " and cs_doc_comp.cons_suc_id = cs_part_comp.cons_suc_id "
SET @SQL = @SQL + " and cs_part_comp.artic_id = cs_cat_artic.artic_id "
SET @SQL = @SQL + " and cs_part_comp.cons_suc_id = cs_cat_artic.cons_suc_id "
SET @SQL = @SQL + " and cs_cat_artic.depto_id = cs_cat_dpto.dpto_id "
SET @SQL = @SQL + " and cs_cat_artic.cons_suc_id = cs_cat_dpto.cons_suc_id "
SET @SQL = @SQL + " and cs_cat_artic.linea_id = cs_cat_linea.linea_id "
SET @SQL = @SQL + " and cs_cat_artic.cons_suc_id = cs_cat_linea.cons_suc_id "
SET @SQL = @SQL + " and cs_doc_comp.cons_suc_id = sw_cat_suc.suc_id "
SET @SQL = @SQL + " and cs_doc_comp.tipo_doc = 10 "
SET @SQL = @SQL + " and cs_doc_comp.status = 0 "
SET @SQL = @SQL + " and cs_doc_comp.num_doc = " + CAST(@num_pedido as Varchar)
SET @SQL = @SQL + " and sw_cat_suc.NumAlias = " + CAST(@Alias as Varchar)

SET @SQL = @SQL + " Union All"

SET @SQL = @SQL + " SELECT "
SET @SQL = @SQL + " sw_cat_suc_a.NumAlias, sw_cat_suc_a.nombre nombreSuc, cs_cat_linea.clave as clave_linea, cs_cat_linea.nombre as nombre_linea, cs_cat_dpto.nom_corto as Depto,"
SET @SQL = @SQL + " cs_cat_artic.clave as clave_artic,"
SET @SQL = @SQL + " cs_cat_artic.nombre as nombre_artic,"
SET @SQL = @SQL + " cs_cat_artic.nombre2 as tipoColor,"
SET @SQL = @SQL + " cs_cat_artic.clasif,"
SET @SQL = @SQL + " 0 as 'cant_pedida',"
SET @SQL = @SQL + " cs_doc_comp.fecha as 'fch_comp',"
SET @SQL = @SQL + " cs_part_trans.cantidad as 'cant_surtida',"
SET @SQL = @SQL + " cs_part_trans.cantidad * 1 as 'dif'"
SET @SQL = @SQL + " FROM cs_doc_trans, cs_part_trans, cs_cat_artic, cs_cat_dpto, cs_cat_linea, sw_cat_suc sw_cat_suc_a, sw_cat_suc sw_cat_suc_b, cs_doc_comp"
SET @SQL = @SQL + " WHERE cs_doc_trans.doc_trans_id = cs_part_trans.doc_trans_id "
SET @SQL = @SQL + " and cs_doc_trans.cons_suc_id = cs_part_trans.cons_suc_id "
SET @SQL = @SQL + " and cs_part_trans.artic_id = cs_cat_artic.artic_id "
SET @SQL = @SQL + " and cs_part_trans.cons_suc_id = cs_cat_artic.cons_suc_id "
SET @SQL = @SQL + " and cs_cat_artic.depto_id = cs_cat_dpto.dpto_id "
SET @SQL = @SQL + " and cs_cat_artic.cons_suc_id = cs_cat_dpto.cons_suc_id "
SET @SQL = @SQL + " and cs_cat_artic.linea_id = cs_cat_linea.linea_id "
SET @SQL = @SQL + " and cs_cat_artic.cons_suc_id = cs_cat_linea.cons_suc_id "
SET @SQL = @SQL + " and cs_doc_trans.suc_id_r = sw_cat_suc_a.suc_id"
SET @SQL = @SQL + " and cs_doc_trans.suc_id_e = sw_cat_suc_b.suc_id "
SET @SQL = @SQL + " and cs_doc_comp.num_doc = cs_doc_trans.num_ref"
SET @SQL = @SQL + " and cs_doc_comp.cons_suc_id = cs_doc_trans.suc_id_r"
SET @SQL = @SQL + " and cs_doc_trans.tipo_doc = 6 "
SET @SQL = @SQL + " and cs_doc_trans.status = 0 "
SET @SQL = @SQL + " and sw_cat_suc_a.NumAlias = " + CAST(@Alias as Varchar)
SET @SQL = @SQL + " and cs_doc_trans.num_ref = " + CAST(@num_pedido as Varchar)
SET @SQL = @SQL + " ) A"
SET @SQL = @SQL + " GROUP BY NumAlias, nombreSuc, clave_linea, nombre_linea, Depto, nombre_artic, tipoColor, clave_artic, clasif, fch_comp"
IF @condicion = 0 BEGIN
SET @SQL = @SQL + " HAVING SUM(dif) < 0"
END
ELSE IF @condicion = 1 BEGIN
SET @SQL = @SQL + " HAVING SUM(dif) > 0"
END
EXEC(@SQL)



GO


Por su atencion gracia.
  #12 (permalink)  
Antiguo 04/05/2009, 08:01
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Procedimientos almacenados y paginacion.

Por si alguien lo puede dejo mi correo msn es <<editado>>

Última edición por AlZuwaga; 04/05/2009 a las 11:35
  #13 (permalink)  
Antiguo 04/05/2009, 10:05
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Procedimientos almacenados y paginacion.

Bienvenido al foro

Cuando tengas una duda, abre un post para ella, no revivas temas viejos con información irrelevante para la duda inicial.

Y por último, si alguien te puede colaborar, la idea es dejar la respuesta a tu pregunta en el foro, no a tu correo.

Cierro el post
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 00:17.