varias sentencias

28/06/2005 - 14:07 por **joselitux** | Informe spam
Hola

Quiero lanzar dos sentencias sql en el mismo recordset. ¿es posible?

algo así como
rs.open "select * from customers","select * from pubs",conexion,3

¿cómo haría referencia a cada resulset para mostrarlo en pantalla?

gracias

Preguntas similare

Leer las respuestas

#1 **joselitux**
28/06/2005 - 14:56 | Informe spam
Con este código tras recuperar el primer recordset se resuelve el tema.

set rs=rs.NextRecordset


Ahora estaría interesado en saber si cargando 4 consultas en el
resultset sería más eficiente que abrir y cerrar el recordset con cada
consulta en el orden en que las voy necesitando.



**joselitux** wrote:
Hola

Quiero lanzar dos sentencias sql en el mismo recordset. ¿es posible?

algo así como
rs.open "select * from customers","select * from pubs",conexion,3

¿cómo haría referencia a cada resulset para mostrarlo en pantalla?

gracias
Respuesta Responder a este mensaje
#2 Manuel Vera
28/06/2005 - 15:36 | Informe spam
Si mal no recuerdo, creo que ADO puede aceptar dos SELECT que se comporten
como dos recordsets dentro de 1 solo objeto Recordset.
Creo que es separando con ";" y deberían tener igual número de columnas.
Según creo (nunca lo he hecho) es así:

sql$="select codigo, descripcion from tabla1;"
sql$=sql$ & "select codigo, descripcion from tabla1"
rs.open sql, conn

Y luego se usa el
rs.NextRecordset
para cambiar al siguiente conjunto.

Otra forma, que si he usado y probado, es usar directamente sentencias SQL,
así:
sql$="select codigo, descripcion from tabla1"
sql$=sql$ & " UNION ALL select codigo, descripcion from tabla1"
rs.open sql, conn

de esta otra manera, traes los dos resultados dentro de un solo conjunto.
Debo resaltar que deben poseer igual número de columnas y que sean del mismo
tipo de datos.

Salu2
MV


"Matias Iacono" wrote in message
news:eQzlwC%
No puedes hacerlo. Esto debido a que un recordset solo te retorna un grupo
de datos especifico.

Pero, si puedes hacer un select que junte las dos tablas, si es lo que
necesitas.

O, en todo caso, con una misma conexion, obtener dos recordset diferentes.

Saludos,

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3

Profile: http://aspnet2.com/mvp.ashx?MatiasIacono
"**joselitux**" escribió en el mensaje
news:
> Hola
>
> Quiero lanzar dos sentencias sql en el mismo recordset. ¿es posible?
>
> algo así como
> rs.open "select * from customers","select * from pubs",conexion,3
>
> ¿cómo haría referencia a cada resulset para mostrarlo en pantalla?
>
> gracias


Respuesta Responder a este mensaje
#3 Matias Iacono
28/06/2005 - 17:56 | Informe spam
No puedes hacerlo. Esto debido a que un recordset solo te retorna un grupo
de datos especifico.

Pero, si puedes hacer un select que junte las dos tablas, si es lo que
necesitas.

O, en todo caso, con una misma conexion, obtener dos recordset diferentes.

Saludos,

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3

Profile: http://aspnet2.com/mvp.ashx?MatiasIacono
"**joselitux**" escribió en el mensaje
news:
Hola

Quiero lanzar dos sentencias sql en el mismo recordset. ¿es posible?

algo así como
rs.open "select * from customers","select * from pubs",conexion,3

¿cómo haría referencia a cada resulset para mostrarlo en pantalla?

gracias
Respuesta Responder a este mensaje
#4 Matias Iacono
28/06/2005 - 19:30 | Informe spam
Exacto... a veces soy muy tajante con las respuestas :D

Cuando algo es muy rebuscado o traera mas problemas de los que
solucionara... para mi, no se puede :D

De cualquier manera, personalmente, veo como mejor opcion el uso de un join,
si es que viene al caso. O en todo caso, el uso de una conexion unica, y
tener mas de un recordset como variables.

Ya que, al final, el hacer NextRecordset, hace que tengas que tener otra
variable para contenerlo, o, remplazar la que tenia el anterior recordset.

Saludos,

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3

Profile: http://aspnet2.com/mvp.ashx?MatiasIacono
"Manuel Vera" escribió en el mensaje
news:ebrOaY%
Si mal no recuerdo, creo que ADO puede aceptar dos SELECT que se comporten
como dos recordsets dentro de 1 solo objeto Recordset.
Creo que es separando con ";" y deberían tener igual número de columnas.
Según creo (nunca lo he hecho) es así:

sql$="select codigo, descripcion from tabla1;"
sql$=sql$ & "select codigo, descripcion from tabla1"
rs.open sql, conn

Y luego se usa el
rs.NextRecordset
para cambiar al siguiente conjunto.

Otra forma, que si he usado y probado, es usar directamente sentencias
SQL,
así:
sql$="select codigo, descripcion from tabla1"
sql$=sql$ & " UNION ALL select codigo, descripcion from tabla1"
rs.open sql, conn

de esta otra manera, traes los dos resultados dentro de un solo conjunto.
Debo resaltar que deben poseer igual número de columnas y que sean del
mismo
tipo de datos.

Salu2
MV


"Matias Iacono" wrote in message
news:eQzlwC%
No puedes hacerlo. Esto debido a que un recordset solo te retorna un
grupo
de datos especifico.

Pero, si puedes hacer un select que junte las dos tablas, si es lo que
necesitas.

O, en todo caso, con una misma conexion, obtener dos recordset
diferentes.

Saludos,

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3

Profile: http://aspnet2.com/mvp.ashx?MatiasIacono
"**joselitux**" escribió en el mensaje
news:
> Hola
>
> Quiero lanzar dos sentencias sql en el mismo recordset. ¿es posible?
>
> algo así como
> rs.open "select * from customers","select * from pubs",conexion,3
>
> ¿cómo haría referencia a cada resulset para mostrarlo en pantalla?
>
> gracias







email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida