Documentacióntipos_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
STRINGcon 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ámetro | Tipo | Descripción |
|---|---|---|
| tabla | TABLA | Tabla origen. |
| indice | NUMERICO | Índice del registro a inspeccionar. |
| prof | NUMERICO | Profundidad 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