Spanish Duda existencial sobre DBResult

roerGarcia

Active Member
Licensed User
Longtime User
Hola, esperando que todos esten bien y las cosas marchen de lo mejor!

Uso clasico de:
Dim req As DBRequestManager = CreateRequest
Dim cmd As DBCommand = CreateCommand("select_alltsce", Null)
Wait For (req.ExecuteQuery(cmd, 0, Null)) JobDone(j As HttpJob)
If j.Success Then
    req.HandleJobAsync(j, "req")
    Wait For (req) req_Result(res As DBResult)
    If res.Rows.Size = 0 Then
    Else
        Dim Data As List
        Data.Initialize
            [B][B]For Each row() As Object In res.Rows[/B][/B]
            ' PCN CURP NOMBRE TELEFONO OCUPACION DIRECCION ID
            Dim ROWTSC(7) As Object
                    ROWTSC(0) = [B]row(1) [/B]' PCN
                    ROWTSC(1) = row(6) ' CURP
                    ROWTSC(2) = row(3) ' NOMBRE
                    ROWTSC(3) = row(5) ' TELEFONO
                    ROWTSC(4) = row(7) ' OCUPACION
                    ROWTSC(5) = row(4) ' DIRECCION
                    ROWTSC(6) = row(0) ' Id del PCN / CURP
                If chkAllPend.Checked = False Then
                    If row(1) = "0" Then
                        Data.Add(ROWTSC)
                    End If
                Else
                    Data.Add(ROWTSC)
                End If
        Next
              [I][I]b4xTabFolios.SetData(Data)[/I][/I]
    End If
Else
    Log("Error en el acceso al server")'
End If
j.Release

End Sub

En este ejemplo tomado del foro y adaptado con un query determinado, los valores retornados se usan para rellenar una tabla.
Cosa de todos los dias supongo.

Pero cuando quieres hacer un select que te retorna lo especificado en el Type DBResult (Tag As Object, Columns As Map, Rows As List) de que manera se puede accesar el tercer elemento de la lista Rows, entendiendo que el contenido de dicha lista son los valores de los campos indicados en Columns... ?

Jajaja, nada mas falta que nunca haya captado lo esencial en esta operacion.

El For Each row() As Object In res.Rows crea un objeto de cada renglon del recordset, verdad? y se obtiene los elementos anidados con otro objeto, Dim ROWTSC(7) As Object pero no puedo ir directamente a un elemento del unico renglon que retorna un query?

Saludos y gracias anticipadas.

PD. Por cierto, usar CODE y negritas dentro del bloque no funciona bien. =)
 

José J. Aguilar

Expert
Licensed User
Hola Roer:

No eres el único que se ha hecho esa pregunta alguna vez (yo aún tengo que mirarlo cuando lo necesito).
Echa un ojo a esta respuesta


saludos,
 

Piluso

Member
Licensed User
Hola Roer.
Te respondo de memoria porque no estoy en mi pc, asi que pido disculpa si erro o no interprete tu pregunta.

No probaste hacer un log(row), ahi veras como se llama cada columna de tu tabla y el nro de row que tiene, y despues pasas la info de tu row(n) al lugar que precises.
Esta tarde cuando vuelva a casa te paso como lo tengo hecho, aunque no se si es lo que realmente precisas.
 

roerGarcia

Active Member
Licensed User
Longtime User
Gracias Jose y Piluso.

La pregunta en si tiene cierta forma de solucion en los foros y dando de topes con la pared en ocasiones finalmente uno llega al entendimiento de como esta formado el LIST que forma parte del Result Set del query enviado.

Conceptualmente lo entiendo, pero esperaria que el LIST rows fuera mas "facil" de accesar.

Por eso preguntaba por ver si algun otro tenia otra solucion mas "elegante".

Gracias, buen fin de semana.
 
Top