Para patadas que estoy escribiendo una herramienta "documentación del esquema" que genera una descripción de las tablas y relaciones en una base de datos. Actualmente estoy haciendo ajustes para trabajar con SQLite.Encuentra nombres de columna en la tabla SQLite vacío
He logrado extraer los nombres de todas las tablas en una base de datos SQLite mediante una consulta en la tabla sqlite_master
. Para cada nombre de la tabla, entonces me llamas más allá de un simple consulta
select * from <table name>
, a continuación, utilizar los sqlite3_column_count()
y sqlite3_column_name()
API para recoger los nombres de columna, que me alimento más a sqlite3_table_column_metadata()
para obtener información adicional. Lo suficientemente simple, ¿verdad?
El problema es que sólo funciona para las tablas que no están vacías. Es decir, el sqlite_column_*()
API sólo son válidos si sqlite_step()
ha vuelto SQLITE_ROW
, lo cual no es el caso de mesas vacías.
Así que la pregunta es, ¿cómo puedo descubrir nombres de columna para mesas vacías? O, de manera más general, ¿hay una forma mejor de obtener este tipo de información de esquema en SQLite?
Siento que debe haber otra mesa oculta sqlite_xxx
al acecho en algún lugar que contenga esta información, pero hasta ahora no ha podido encontrarla.
gracias a todos. Pensé erróneamente que la interfaz PRAGMA era solo para el cliente de línea de comandos 'sqlite3'. –