2010-07-20 7 views
9

Je me demandais quel est le "meilleur" moyen de vérifier la structure de ma base de données avec SQLite en Qt/C++. J'utilise SQLite donc il y a un fichier qui contient ma base de données, et je veux m'assurer que, lors du lancement du programme, la base de données est structurée comme elle devrait l'être - ie, elle a X tables avec leurs propres colonnes Y , nommé de façon appropriée, etc. Quelqu'un pourrait-il pointer mon dans la bonne direction? Merci beaucoup!Vérifier la structure d'une base de données? (SQLite en C++/Qt)

Répondre

6

Vous pouvez obtenir une liste de toutes les tables de la base de données avec cette requête:

select tbl_name from sqlite_master; 

Et puis pour chaque table retourné, exécutez cette requête pour obtenir des informations de la colonne

pragma table_info(my_table); 

Pour la pragma, chaque ligne du jeu de résultats contiendra: un index de colonne, le nom de la colonne, l'affinité de type de la colonne, si la colonne peut être NULL, et la valeur par défaut de la colonne.

(je suppose ici que vous savez comment exécuter des requêtes SQL sur votre base de données dans l'interface SQLite C.)

+0

Absolument, merci de me mettre sur la bonne voie! – Joseph

2

Si vous avez QT et donc QtSql à portée de main, vous pouvez également utiliser le QSqlDatabase::tables() (API doc) pour obtenir les tables et QSqlDatabase::record(tablename) pour obtenir les noms des champs. Il peut également vous donner la clé primaire (s), mais pour plus de détails, vous devrez suivre les conseils de pkh pour utiliser le pragma table_info.

Questions connexes