我正在尝试捕获表中的字段,但即使表是空的,我也需要获取该数据。
sqlite3_table_column_metadata
不是一个选项(它没有编译到我的SQLite3版本中)。
是否有获取该信息的技巧?
答案 0 :(得分:2)
答案 1 :(得分:1)
如果您在本地运行,您可以下载源代码并编译您喜欢的任何选项。但如果这不是一个选项,那么仍有几种方法可以获得元数据。
您可以查询sqlite_master表,但数据不是最友好的形式。
select sql
from sqlite_master
where type='table' and name='your-table-name';
该查询将返回CREATE TABLE
语句。期待格式化惊喜。
如果您可以从c界面发出“dot”命令,则可以打开列标题,然后查询任何表格。这是sqlite提示符的样子。
sqlite> .headers on
sqlite> select * from file_stats;
date|file_id|num_lines
只有拥有列名,才能获得数据类型。除非表中有数据,否则typeof()函数不会返回任何内容。
我也打算包含pragma table_info()函数,但是Trevor打败了我。我不知道你是否可以从c api发出pragma语句。