2010-07-20 16 views
9

Zastanawiam się, jaki "najlepszy" sposób weryfikacji struktury mojej bazy danych jest z SQLite w Qt/C++. Używam SQLite, więc istnieje plik, który zawiera moją bazę danych i chcę się upewnić, że podczas uruchamiania programu baza danych jest zorganizowana w taki sposób, w jaki powinna być - tj. Ma tabele X, każda z własnymi kolumnami Y , odpowiednio nazwane itp. Czy ktoś mógłby wskazać mi właściwy kierunek? Dzięki wielkie!Zweryfikuj strukturę bazy danych? (SQLite w C++/Qt)

Odpowiedz

6

można uzyskać listę wszystkich tabel w bazie danych z tego zapytania:

select tbl_name from sqlite_master; 

a następnie dla każdej tabeli powrócił uruchomić tę kwerendę, aby uzyskać informacje kolumna

pragma table_info(my_table); 

W imieniu pragma, każdy wiersz zestawu wyników będzie zawierał: indeks kolumny, nazwę kolumny, powinowactwo typu kolumny, kolumnę może mieć wartość NULL i domyślną wartość kolumny.

(jestem zakładając tu, że wiesz jak uruchomić zapytań SQL przeciwko bazy danych w interfejsie SQLite C).

+0

Absolutnie, dzięki za ustawienie mnie na właściwym torze! – Joseph

2

Jeśli masz QT, a tym samym QtSql pod ręką, można również użyć QSqlDatabase::tables() (API doc), aby uzyskać tabele i QSqlDatabase::record(tablename), aby uzyskać nazwy pól. Może również podać klucz podstawowy (klucze podstawowe), ale w celu uzyskania dalszych szczegółów będziesz musiał postępować zgodnie z poleceniem pkh, aby użyć pragma table_info.

Powiązane problemy