Skip to content

Latest commit

 

History

History
 
 

Пример консольной программы для демонстрации принципов работы с БД в Qt

SQLite - компактная встраиваемая реляционная база данных Слово «встраиваемый» означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. query - SQL-запрос в виде строки QSqlQuery a_query(query); SELECT * FROM phone WHERE people_id = 1 QString sqlTemplate("SELECT * FROM phone WHERE people_id = %1"); QSqlQuery query; bool res = query.exec(sqlTemplate.arg(1)); Можно сделать отдельную функцию для добавления контакта, которая принимает параметрами данные о контакте Шаблон SQL-запроса INSERT %1 %2 %3 - параметры шаблона Проверка что таблица существует tableName - имя таблицы Шаблон запроса %1 - первый аргумент Если exec() вернул false => при выполнении запроса произошла ошибка => надо об этом сообщить пользователю и завершить программу. "Мёртвые программы не лгут" (с) "Программист-прагматик" Читаем таблицу результатов Получаем запись Одна строка из результатов запроса Выбираем следующую строку Для Qt до версии 5 Индекс (начиная с нуля) столбца с заданным именем в строке результатов QVariant nameQVariant = q.value("name"); QString name = nameQVariant.toString(); Начиная с Qt5 cout << ++count << ". " << name.toLocal8Bit().constData() << " " << birthday.toStdString() << " " << endl; Работаем с БД SQLite -- Подключение к Базе Данных -- Подключаем драйвер для работы с SQLite Названия драйверов для Qt: http://qt-project.org/doc/qt-5/sql-driver.html Sqlite3 Имя файла с SQLite базой данных База данных открыта и можно выполнять запросы -- Создание схемы БД -- DDL query - создаём новую таблицу Data Definition Language (DDL) - язык описания данных Создаём таблицу контактов Создаём таблицу телефонов -- Добавление данных -- DML Data Manipulation Language (DML) - язык управления (манипулирования) данными -- Выполнение запроса и навигация по результирующей выборке -- Сложный запрос с JOIN'ами setlocale(LC_ALL, "Russian"); main.cpp