Documentaciónconsultar(db, sql)

consultar(db,sql)\texttt{consultar}(db, sql)

Nombre

consultar - Ejecuta una consulta SELECT y devuelve una TABLA BLOX.

Sinopsis

tabla = sqlite.consultar(db, sql)

Descripcion

Ejecuta una consulta SQL de tipo SELECT sobre una base SQLite y construye una TABLA BLOX a partir de las filas devueltas.

Es la forma normal de traer datos desde SQLite hacia el entorno BLOX.

Comportamiento

  • Recibe una conexion SQLite abierta y una consulta SQL.
  • Construye una tabla con tipado por celda a partir del resultado.
  • Los valores INTEGER y REAL se convierten a NUMERICO, TEXT a STRING y NULL al valor nulo interno.

Funciones API relacionadas

  • sqlite.ejecutar()

Parámetros

ParámetroTipoDescripción
dbSQLITEHandle de conexion SQLite abierto.
sqlSTRINGConsulta SQL de tipo SELECT.

Valor de retorno

TABLA - TABLA BLOX construida a partir de las filas retornadas por la consulta.

Ejemplo

ejemplo.blox
INCLUIR "sqlite.api"
INCLUIR "tablas.api"

FUNCION PRINCIPAL
INICIO

    SQLITE db
    TABLA modulos, funciones, argumentos, markdown
    STRING q_mod, q_fun, q_arg, q_md

    db = sqlite.abrir("documentacion_blox.db")

        // 1. Monta los query's para la ficha cruda de las documentaciones de funciones
        //
        q_mod = "SELECT clave, nombre FROM modulos ORDER BY clave LIMIT 10;"
        q_fun = "SELECT nombre, retorno_tipo FROM v_funciones WHERE modulo_clave = 'SQLITE' ORDER BY nombre;"
        q_arg = UNIR("SELECT a.orden, a.nombre, a.tipo ",
                     "FROM argumentos a ",
                     "JOIN funciones f ON f.id = a.funcion_id ",
                     "JOIN modulos m ON m.id = f.modulo_id ",
                     "WHERE m.clave = 'SQLITE' AND f.nombre = 'importar' ",
                     "ORDER BY a.orden;")


        // 2. Monta la query para la consulta de los markdown de documentaciones
        //
        q_md = "SELECT titulo FROM markdown_docs ORDER BY titulo;"


        // 3. Extrae los datos de la base de datos (alias exportar())
        //
        modulos    = sqlite.consultar(db, q_mod)
        funciones  = sqlite.consultar(db, q_fun)
        argumentos = sqlite.consultar(db, q_arg)
        markdown   = sqlite.consultar(db, q_md)


        // 4. Imprime las tablas con el resultado de las consultas
        //
        IMPRIMIR("\n\nMODULOS")
        IMPRIMIR("\n----------------------------------------\n")
        tablas.imprimir(modulos)

        IMPRIMIR("\n\nFUNCIONES SQLITE")
        IMPRIMIR("\n----------------------------------------\n")
        tablas.imprimir(funciones)

        IMPRIMIR("\n\nARGUMENTOS DE sqlite.importar()")
        IMPRIMIR("\n----------------------------------------\n")
        tablas.imprimir(argumentos)

        IMPRIMIR("\n\n\nDOCUMENTOS MD")
        IMPRIMIR("\n----------------------------------------\n")
        tablas.imprimir(markdown)

    sqlite.cerrar(db)

FINAL