Intenté usar getRows() con el objeto ShapeCommand, pero claro, no me sale. Por eso, hice un simple algoritmo para ver como podría obtener los mismos resultados que con ese comando. Será efectivo hacerlo de esta forma?, los resultados que obtuve son exactamente los mismos, salvo que acá guardo tanto el RS padre como el hijo en memoria a través de getRows, y luego los recorro con un par de bucles y una sentencia condicional.
Este es el código:
Código:
Const ShopId = 0
Const ShopName = 1
Const MsgShopId = 0
Const MsgDate = 1
Const MsgTopic = 2
Const MsgFrom = 3
Dim conn, RS1, RS2, rs_Array1, rs_Array2
Dim LastMessage, LastShop
Dim i, a
set conn = Server.CreateObject("ADODB.Connection")
set RS1 = Server.CreateObject("ADODB.RecordSet")
set RS2 = Server.CreateObject("ADODB.RecordSet")
conn.Open(StrConn)
RS1.Open("SELECT NegocioId, NombreNegocio FROM Negocios"), conn
RS2.Open("SELECT MensajeNegId, MensajeFecha, MensajeAsunto, MensajeDe FROM Mensajes"), conn
rs_Array1 = RS1.getRows()
rs_Array2 = RS2.getRows()
LastShop = UBound(rs_Array1, 2)
LastMessage = UBound(rs_Array2, 2)
RS1.Close()
RS2.Close()
conn.Close()
set RS1 = nothing
set RS2 = nothing
set conn = nothing
for i=0 to LastShop
Response.Write("Id: " & rs_Array1(ShopId, i)&" Nombre: " & rs_Array1(ShopName, i)&"<br>")
for a=0 to LastMessage
if(rs_Array1(ShopId, i) = rs_Array2(MsgShopId, a)) then
Response.Write("Fecha: " & rs_Array2(MsgDate, a)&" Asunto: " & rs_Array2(MsgTopic, a)&" De: " & rs_Array2(MsgFrom, a)&"<br>")
end if
next
next
Lo que hace este código es mostrarme todos los negocios de la tabla Negocios y los respectivos mensajes que le pertenecen, extraídos de la tabla Mensajes. La "relación" entre ambas tablas, para conseguir que me muestre los respectivos mensajes para cada negocio, la hago con la sentencia condicional dentro del bucle anidado, comparando los campos que sirven para hacer la relacion entre las tablas.
Les parece que esto puede ser una alternativa válida al ShapeCommand, si quiero privilegiar el hecho de mantenerme desconectado de la fuente de datos?
Espero sus opiniones!.
Gracias anticipadas.
Saludos!.