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
| |||
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 |
| ||||
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! |
| ||||
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. |
| |||
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 |
| ||||
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 |
| ||||
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 |
| ||||
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 |
| ||||
![]() Cita: 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. |
| |||
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. |
| ||||
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 |