SQLite — быстрый старт

В этой статье мы напишем простую программу с использованием библиотеки SQLite. Программа создаст базу данных, запишет туда информацию, а потом выведет эту информацию на экран.

1. Создание нового проекта

Для работы с таблицей мы будем виджеты GTK+, поэтому запустите CodeBlocks и выполните «Файл — Создать — Проект — GTK+ project». Готовый проект вы можете скачать в конце этой статьи.

Установите параметры проекта. Меню «Проект — Свойства — Цели сборки». Поставьте выделенные параметры.

Запустите приложение для проверки.

Библиотека GTK+ работает. Теперь убедитесь, что библиотека SQLite подключена к CodeBlocks. Об этом подробно написано здесь.

2. Подключение GtkListStore для вывода таблицы

В GTK+ для работы со сложными данными используется GtkTreeModel — набор функций для хранения и отображения данных.
Существует две модели хранения GtkListStore и GtkTreeStore и один виджет отображения GtkTreeView, который поддерживает обе модели хранения.

Для работы с таблицами нужно сделать запрос к БД и поместить результат в структуру GtkListStore. Виджет GtkTreeView отобразит данные в виде таблицы.

Для работы с таблицей в GTK+ нужно:

  1. Создать буфер GtkListStore.
  2. Добавить строки в буфер.
  3. Создать таблицу GtkTreeView.
  4. Добавить столбцы в таблицу.

Для обращения к таблице используется:

  • Итератор GtkTreeIter — текущая строка.
  • Колонка GtkTreeViewColumn — текущий столбец.
  • Рендер GtkCellRenderer — текущая ячейка.

Запускаем Glade и готовим виджет, для этого.

  1. Создаем буфер liststore1 для модели таблицы,
  2. Создаем виджет дерева treeview1.
  3. Указываем для этого виджета буфер liststore1.

Сохраняем интерфейс в файл main.glade. Виджет готов, теперь его надо настроить: указать столбцы и формат ячеек.

3. Настройка виджета GtkTreeView в Glade

У нас сейчас пустое окно, в котором есть дерево treeview1 и буфер liststore1. Нажимаем на иконку Edit.

В редакторе виджета «Дерево» столбцы настраиваются на вкладке “Основные”, а ячейки — на вкладке “Иерархия”. Сначала добавим три столбца:

  • guint1
  • gcharray1
  • guin2

Теперь настроим ячейки:

  • Номер
  • Фамилия
  • Оклад

Всё, интерфейс готов. Теперь можно писать обращение к базе данных.

4. Создание базы данных SQLite

Для подключения к БД SQLite используется команда sqlite3_open(«b1.db», &db). В этой строчке открывается база данных b1.db, если ее нет, то она создается.

В качестве примера возьмем таблицу «Сотрудники», в которой зададим поля:

  • N
  • Фамилия
  • Оклад

Теперь составляем SQL-запрос, в котором создаем таблицу «Сотрудники» и задаем значения полей. Начинается запрос с удаления таблицы «Сотрудники», если она есть. Это для того, чтобы мы могли запускать программу несколько раз.

 

5. Загрузка данных в буфер виджета GtkTreeView

Когда мы подключились к баз данных, мы можем загрузить строки БД в буфер виджета GtkTreeView. Сам буфер мы задаем строчкой:

Загрузку данных выполняет следующий код:

Здесь мы в цикле перебираем строки запроса и заполняем ячейки таблицы значениями полей из базы данных.

6. Итоговая программа

Остальные шаги по выводу таблицы на экран достаточно стандартны. Подключаем интерфейс main.glade и выводим на экран основное окно. Вот код целиком.

В результате мы получаем вывод таблицы из базы данных на экран.

С помощью SQLite Studio можно подключиться к этой БД и увидеть, что все данные отражаются правильно.

Полностью проект можно скачать здесь

 

 

Комментарии 4

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.