验证数据库的结构? (SQLite in C ++ / Qt)

时间:2010-07-20 04:44:48

标签: c++ sql database qt sqlite

我想知道在Qt / C ++中用SQLite验证数据库结构的“最佳”方法是什么。我正在使用SQLite,所以有一个文件包含我的数据库,我想确保在启动程序时,数据库的结构应该是这样的 - 即,它有X个表,每个表都有自己的Y列,有适当的名字等。有人能指出我正确的方向吗?非常感谢!

2 个答案:

答案 0 :(得分:6)

您可以使用此查询获取数据库中所有表的列表:

select tbl_name from sqlite_master;

然后对于返回的每个表,运行此查询以获取列信息

pragma table_info(my_table);

对于pragma,结果集的每一行都将包含:列索引,列名,列的类型亲缘关系,列是否为NULL以及列的默认值。

(我假设您知道如何在SQLite C界面中对数据库运行SQL查询。)

答案 1 :(得分:2)

如果您有QT并因此有QtSql,那么您还可以使用QSqlDatabase::tables()API doc)方法获取表格,QSqlDatabase::record(tablename)获取字段名称。它还可以为您提供主键,但是有关详细信息,您必须遵循pkh的建议才能使用table_info编译指示。