Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 Enlazar dos sentencias SQL
 Foro Bloqueado  Tema Bloqueado


Autor Temas
PseudoXavi
Starting Member

España
33 Posts
Mensajes - 12 Aug 2004 :  14:09:39  Ver Perfil  Enviar Email  Visit PseudoXavi's Homepage
Buenas a todos.
Ya hace tiempo que no participaba en el foro... Bueno, veo que todos seguís igual de activos, jeje!

La consulta es algo complicada: Tengo una sentencia que funciona perfectamente. Ahora se me pide una modificación, de forma que la paginación que utilizo funcione exactamente igual, pero al final, salgan los resultados de otra sentencia. Es decir, tenemos 2 sentencias, SQL1 y SQL2. La paginación de momento afecta a la SQL1, pero quisiera que incluyera a la SQL2, en la misma paginación, pero al final una vez ejecutada la primera. El problema es que por lo que yo se, las paginaciones se construyen sobre un Recordset devuelto de con.execute, con lo que veo difícil que la misma paginación se pueda acceder a dos Recordsets. Así que imagino que la solución sería ejecutar una sola sentencia, pero como las consultas son bastante diferentes, crear una sola de las dos me daría los registros mezclados y no me interesa ya que quiero que los de la segunda se muestren una vez mostrados los de la primera.

Es un poco liado, pero a nivel de concepto creo que se entiende. Hay solución? Ideas?

Muchas gracias a todos.


Xavier Arnaus Gil

xavier@ladragonera.com'>xavier@ladragonera.com

www.ladragonera.com'>www.LaDragonera.com

matrix_revolutions_neo
Junior Member

Mexico
249 Posts
Posted - 12 Aug 2004 :  20:57:44  Ver perfil  Enviar e-mail
De esa forma no se me ocurre nada,

Pues sería mejor que dijeras que dicen tus SQL, así se entendería mejor que es lo que necesitas, y como es que la paginación afecta.

Saludos

Everything that has a beginning has an EndInicio Pagina

PseudoXavi
Starting Member

España
33 Posts
Posted - 13 Aug 2004 :  09:55:01  Ver perfil  Enviar e-mail  Visit PseudoXavi's Homepage
Bien, imagina una sentencia que selecciona unas ofertas de viages (es una aplicación web estilo agencia de viages). Éste Recordset está paginado. Luego tengo otras ofertas de viages que no ganamos comisión a las que no quiero dar prioridad, es decir, quiero que se muestren una vez mostradas las primeras.
si pongo aquí la sentencia entera, sería bastante liado ya que usa funciones del SQL Server y cosas así, pero para el ejemplo podríamos poner un par del estilo:

SQL1: select * from ofertascomision
SQL2: select * from ofertassincomision

La primera está paginada, y la segunda me gustaría introducirla en la paginación de la primera.

Por mi cueta he pensado en hacer dos consultas sacando los id's, los meto en un par de variables (una para cada select), y luego las concateno, para luego hacer una select basada en un "where id_oferta in (" & arrayconcatenado & ")". Lo que me pregunto es que si se va a mantener el orden de los Id's que le pongo yo en ésta última select.

No sé, que os parece? Éste método me parece algo cutre pero puede que funcione...

Xavier Arnaus Gil
xavier@ladragonera.com
www.LaDragonera.comInicio Pagina

matrix_revolutions_neo
Junior Member

Mexico
249 Posts
Posted - 13 Aug 2004 :  23:27:29  Ver perfil  Enviar e-mail
mmmm, me parece buena tu idea, si quieres que conserven el orden solo coloca "order by".

Por otro lado Tu dices que paginas las de comisión y las de sin comisión, voy a suponer que de 10 en 10.

Cuál es el problema, en hacerlo primero una y luego la otra???

Son Sentencias SQL, y no se afectan demasiado una con la otra.

Saludos

Everything that has a beginning has an EndInicio Pagina

PseudoXavi
Starting Member

España
33 Posts
Posted - 16 Aug 2004 :  09:51:49  Ver perfil  Enviar e-mail  Visit PseudoXavi's Homepage
Gracias por la respuesta, pero no puedo usar un order by para´éstas sentencias porque me las ordenaría todas conjuntamente (si las uniera) y no en dos bloques, que seria lo ideal. Creo recordar que había una forma de hacerlo, con havings o algo así, pero si pudiera hacer una sola sentencia de las dos y que los últimos fueran los de sin comisión, seria perfecto. El tema es que para los sin comisión, no hay un campo específico que pueda usar para ordenarlo todo según éso, y así la opción order by la descarto.

El problema de hacer primero una y luego la otra es que todas las características de la paginación se definen en un rs Si hago 2 RS's, deberé hacer 2 paginaciones. Y en una sola página, que se llama a sí misma para hacer la paginación (los ejemplos de aquí funcionan también así), preveo un script muy grande a base de if's y cosas de ésas para juntarlo todo (los 2 rs's, las 2 paginaciones, y el enlace) todo en la misma página. Me explico: aunque sean de 10 en 10, ponemos que tenemos 15 registros en cada resultado de las 2 SQL's, en los de sin comisión, se muestran los 10 primeros, paginamos, luego salen los 5 siguientes, se ejecuta el if para seleccionar desde cuál sentencia paginar, luego código para mostrar sólo los 5 primeros registros de la segunda sentencia (claro, pensando que éste número es variable, ya que el número de registros varía), luego paginar, luego poner el puntero de la paginación al nº 6,... Además de pasar parámetros para saber el registro actual, la select que se usa,...

Sería todo mucho más sencillo poder hacer una select conjunta, dónde por SQL se pongan primero los de comisión, TODOS, y luego los sin comisión. Así, la paginación se hace sólo sobre un sólo RS y además el peso lo lleva el SQL Server, no el IIS.

No sé...

Xavier Arnaus Gil
xavier@ladragonera.com
www.LaDragonera.com
"Hola Programas!" (TRON)Inicio Pagina

matrix_revolutions_neo
Junior Member

Mexico
249 Posts
Posted - 17 Aug 2004 :  01:14:28  Ver perfil  Enviar e-mail
Pues no veo, cual sea el problema de las dos paginacaciones, además no pierdes mucho. Solo necesitas:

rs.pagesize
rs.absolutepage
rs.pagecount

que tienen que ver tantos if's????

más que
"if not rs.eof"

Saludos


Everything that has a beginning has an EndInicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar