В статье рассказывается о том, как можно подключить SQLite в Qt.
Содержание
В данной статье рассмотрен лишь самый простой пример. Более подробный материал смотрите как в документации, так и в статьях других авторов (например, http://www.prog.org.ru/topic_26665_0.html).
Подготовка базы даннных
В статье http://blog.harrix.org/?p=5154 рассказывается, как создавать базы данных заранее и заполнять их в специальной программе (одной из).
В данной статье будем придерживаться именно этой идеологии: проектирование базы данных и её создание мы осуществляем не в Qt.
Итак, допустим у нас есть небольшая база данных, в которой есть одна таблица и три столбца.
1 2 3 4 5 |
CREATE TABLE `People` ( `_id` INTEGER PRIMARY KEY AUTOINCREMENT, `Name` TEXT NOT NULL, `Age` INTEGER NOT NULL ) |
Предположим, что база данных находится в папке C:\.
Создание Qt приложения
Под сплойером показывается как мы создаем наше приложение. Получим вот такую картинку:
Подключение базы данных
В файле .pro пропишите подключение блока sql.
Было:
1 |
QT += core gui |
Стало:
1 |
QT += core gui sql |
Подключите инклуды:
1 2 |
#include "QtSql/QSqlDatabase" #include "QSqlQuery" |
И в клике кнопки (или где вы хотите) пропишем код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
//Подключаем базу данных QSqlDatabase db; db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("C:\\database.db3"); db.open(); //Осуществляем запрос QSqlQuery query; query.exec("SELECT _id, name, age FROM People"); //Выводим значения из запроса while (query.next()) { QString _id = query.value(0).toString(); QString name = query.value(1).toString(); QString age = query.value(2).toString(); ui->textEdit->insertPlainText(_id+" "+name+" "+age+"\n"); } |
P.S. В статье рассказывается, как закидывать данные в таблицу в компонент tableView. Это будет полезно для работы с базами данных.