Documentacióninfo_de_registro(tabla, indice, prof)

info_de_registro(tabla,indice,prof)\texttt{info\_de\_registro}(tabla, indice, prof)

Nombre

info_de_registro - Devuelve la informacion estructural completa de un registro.

Sinopsis

info = tablas.info_de_registro(tabla, indice, prof)

Descripcion

Es la funcion central del bloque de introspeccion de registros.

A partir de un registro identificado por indice, construye una estructura con tres vectores paralelos:

  • campos
  • tipos
  • valores

Cada posicion representa el mismo elemento estructural del registro. Si prof lo permite, tambien expande subtablas y usa rutas del tipo campo.subcampo.

Es util para:

  • obtener la metadata completa de un registro sin formatearla
  • alimentar funciones como tablas.imprimir_registro()
  • separar la extraccion de datos de su presentacion final

Comportamiento

  • Toma un registro de tabla[indice].
  • Usa internamente campos_de_registro(), tipos_de_registro() y valores_de_registro().
  • Retorna una TABLA con un solo registro que contiene los vectores campos, tipos y valores.
  • Si prof = 1, inspecciona solo el nivel superior; si prof = 2, expande tambien subtablas de segundo nivel.

Funciones API relacionadas

  • tablas.describir_tabla()
  • tablas.campos_de_registro()
  • tablas.valores_de_registro()
  • tablas.tipos_de_registro()
  • tablas.imprimir_registro()

Parámetros

ParámetroTipoDescripción
tablaTABLATabla origen.
indiceNUMERICOÍndice del registro a inspeccionar.
profNUMERICOProfundidad máxima de inspección.

Valor de retorno

TABLA|REGISTRO - TABLA con un solo registro que contiene los vectores campos, tipos y valores del registro inspeccionado.

Ejemplo

ejemplo.blox


INCLUIR "strings.api"
INCLUIR "tablas.api"


FUNCION PRINCIPAL
INICIO
    TABLA p, reg
    TABLA info
    STRING campos[10], valores[10], tipos[10], tipo, campo
    NUMERICO i, j, t

    p = { nombre="Carlos",  edad=30, ciudad="Asuncion" }
    p = { nombre="Juan",    edad=21, ciudad="Encarnacion" }
    p = { nombre="Roberto", edad=45, ciudad="Concepcion" }
    p = { nombre="Maria",   edad=19,
          direccion = { ciudad="Concepcion", barrio="Las Mercedes", calle="Calle Principal" } }

    // PARA cada registro, buscar los campos y los valores. Imprimirlos.

    PARA i = 1 HASTA p.dim HACER

        info = tablas.info_de_registro(p, i, 2)

        campos  = info[1].campos
        tipos   = info[1].tipos
        valores = info[1].valores

        IMPRIMIR("\nREGISTRO ", i, "\n")

        tablas.imprimir_registro(campos, tipos, valores)

        IMPRIMIR("\n-------------------------\n")
    FIN_PARA
FINAL