2010-07-20 41 views
9

我想知道用Qt/C++中的SQLite驗證數據庫結構的「最佳」方法是什麼。我正在使用SQLite,因此有一個包含我的數據庫的文件,並且我想確保在啓動程序時,數據庫的結構應該是這樣的 - 即它有X個表,每個表都有自己的Y列,適當命名等。有人能指出我的方向是正確的嗎?非常感謝!驗證數據庫的結構? (C++/Qt中的SQLite)

回答

6

你可以得到所有的表的列表在數據庫中與此查詢:

select tbl_name from sqlite_master; 

然後爲每個表返回時,運行此查詢來獲取列信息

pragma table_info(my_table); 

對於雜注,結果集的每一行將包含:列索引,列名稱,列的類型關聯性,列是否可以爲NULL以及列的默認值。

(我假設在這裏,你知道如何針對SQLite的C接口數據庫運行SQL查詢。)

+0

絕對,謝謝你讓我走上正軌! – Joseph 2010-07-20 18:52:48

2

如果你有QT,從而QtSql在手,你也可以使用QSqlDatabase::tables()API doc )方法獲取表和QSqlDatabase::record(tablename)以獲取字段名稱。它也可以給你主鍵,但對於更多細節,你將不得不遵循pkh的建議來使用table_info編譯指示。