Documentacióncampos_de_registro(tabla, indice, prof)

campos_de_registro(tabla,indice,prof)\texttt{campos\_de\_registro}(tabla, indice, prof)

Nombre

campos_de_registro - Extrae los nombres o rutas de campo de un registro.

Sinopsis

campos = tablas.campos_de_registro(tabla, indice, prof)

Descripcion

Recorre un registro de la tabla y devuelve un vector de STRING con los nombres de sus campos.

Si prof = 2, tambien expande subtablas y agrega rutas compuestas del tipo campo.subcampo.

Es util para:

  • inspeccionar la estructura nominal de un registro
  • trabajar solo con los nombres/rutas sin pedir tipos ni valores
  • alimentar herramientas de introspeccion o de impresion propia

Comportamiento

  • Siempre incluye los campos del nivel superior.
  • Si el campo es una subtabla y prof >= 2, agrega tambien sus subcampos.
  • Retorna un vector de STRING con rutas simples o compuestas.

Funciones API relacionadas

  • tablas.describir_tabla()
  • tablas.info_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

VECTOR[STRING] - Rutas/campos encontrados.

Ejemplo

ejemplo.blox


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


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

    p = { nombre="Carlos",  edad=30, ciudad="Asuncion", socio = VERDADERO }
    p = { nombre="Juan",    edad=21, ciudad="Encarnacion", socio = FALSO }
    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

        campos  = tablas.campos_de_registro(p, i, 2)
        tipos   = tablas.tipos_de_registro(p, i, 2)    
        valores = tablas.valores_de_registro(p, i, 2)

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

        tablas.imprimir_registro(campos, tipos, valores)

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