Documentacióncampos_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
STRINGcon 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á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] - 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