Documentacióntipos_de_registro(tabla, indice, prof)

tipos_de_registro(tabla,indice,prof)\texttt{tipos\_de\_registro}(tabla, indice, prof)

Nombre

tipos_de_registro - Extrae los tipos de los campos de un registro.

Sinopsis

tipos = tablas.tipos_de_registro(tabla, indice, prof)

Descripcion

Devuelve un vector de STRING con los tipos detectados en el registro indicado.

La salida esta alineada con campos_de_registro() y valores_de_registro(): la posicion i de cada vector representa el mismo elemento estructural.

Si prof = 2, tambien expande subtablas e incluye los tipos de los subcampos.

Es util para:

  • conocer la estructura tipada de un registro
  • acompañar la impresion o inspeccion de campos y valores
  • construir herramientas propias de introspeccion

Comportamiento

  • Siempre incluye los tipos del nivel superior.
  • Si el campo es una subtabla y prof >= 2, agrega tambien los tipos hijos.
  • Retorna un vector de STRING con los tipos encontrados.

Funciones API relacionadas

  • tablas.describir_tabla()
  • tablas.info_de_registro()
  • tablas.campos_de_registro()
  • tablas.valores_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] - Tipos encontrados.

Ejemplo

ejemplo.blox


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


FUNCION PRINCIPAL
INICIO
    TABLA p, reg
    STRING campos[10], valores[10], tipos[10]
    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
        // profundidad 2: incluye direccion.ciudad/barrio/calle

        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