Como Uso Resultset En Collecciones Asi Como Php Hace Con Arreglos, Indice Como Columnas

Como Uso Resultset En Collecciones Asi Como Php Hace Con Arreglos, Indice Como Columnas
Artículo
Citar    Descargar mensaje  
Mensaje Como Uso Resultset En Collecciones Asi Como Php Hace Con Arreglos, Indice Como Columnas 
 
en php es tremendamente facil

del resultset despues de ejecutar el query

        foreach ($resultobjusuario as $column => $row)
                        $arraydata[$column] = $row;

me realiza un mapa (en un areglo) tal cual (parecido a la collecion en gambas) donde el nombre del la columna es el nombre del indice y el valor de este indice es el valor del campo del resultado actual en la iteracion

any ideas? por favor sin hacer clases para los datos!



 
mckaygerhard - Perfil MP  
mckaygerhard [ Martes, 14 Marzo 2017, 18:10 ]


Como Uso Resultset En Collecciones Asi Como Php Hace Con Arreglos, Indice Como Columnas
Comentarios
Citar    Descargar mensaje  
Mensaje Re: Como Uso Resultset En Collecciones Asi Como Php Hace Con Arreglos, Indice Como Columnas 
 
dim c as new collection
dim campo as resultfield
dim r as result

r=miconexion.exec(miconsulta) 'que devuelve un registro
for each campo in r.fields
    c[campo.name]=r[campo.name]
next

'o también
for each campo in r.fields
    c.Add(r[campo.name],campo.name)
next

Más o menos...



 
shordi - Perfil MP  
shordi [ Martes, 14 Marzo 2017, 18:56 ]
Citar    Descargar mensaje  
Mensaje Re: Como Uso Resultset En Collecciones Asi Como Php Hace Con Arreglos, Indice Como Columnas 
 
umm estoy viendo que lo que realmente le falta al foro es estar mas activos..

la respuesta de shordi fue util y la misma de la lista en ingles, pero yo prefiero usar el espanol...

en la lista de ingles se agrego una informacion important4e y para CONTRIBUIR A ESTAR ACTIVOS voy agregarla aqui:

si el query sql es "SELECT * FROM ..." no hay problema, pero si es "SELECT col1, table.col2, col3 FROM table0 JOIN table1 ..." los fileds name se retornan junto con el nombre de la tabla... entonces agrege este codigo:

c[campo.name]=r[Replace(campo.name, Tablename & ".", "")]


este codigo es provisional, mejor es remover todo antes del punto, ya que el nombre de la tabla no es unico, varia segun el join...

Citar:
did an explicit "SELECT id,name". So depending on the SELECT, it had the
table name and a dot prepended.

Este comportamiento es muy correcto de las bases de datos, y sirve para determinar de donde vienen los campos y evitar un sql ambiguo (como el que produce GROUP_CONCAT si hay campos similares en mysql)



 
mckaygerhard - Perfil MP  
mckaygerhard [ Miercoles, 15 Marzo 2017, 18:18 ]
Citar    Descargar mensaje  
Mensaje Re: Como Uso Resultset En Collecciones Asi Como Php Hace Con Arreglos, Indice Como Columnas 
 
¿y si los nombres de campo contienen puntos? ¿y si se incluye el esquema en el nombre de la tabla? Te puedes encontrar campos como `mibasededatos`.`mitabla`.`micampo.conpunto`

Mejor que meterte en esos berenjenales normaliza tus consultas SQL dando un alias único a cada columna devuelta. "Select tabla1.campo1 as 'Campo' from tabla1"... más o menos. Tu colección se rellenará sin problemas



 
shordi - Perfil MP  
shordi [ Miercoles, 15 Marzo 2017, 19:37 ]
Mostrar mensajes anteriores:    
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 


   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.3988s (PHP: -80% SQL: 180%)
Consultas SQL: 45 - Debug off - GZIP Activado