Створення кросплатформового додатку з базою даних у Lazarus

09.04.2026 0 By AdminA

Вступ

Lazarus — потужне середовище для розробки на Free Pascal, яке дозволяє швидко створювати кросплатформові графічні застосунки. У цій статті ми реалізуємо невеликий додаток з локальною базою даних SQLite: створимо форму для відображення та редагування записів, підключимо компоненти SQLDB і зробимо базові операції CRUD (Create, Read, Update, Delete).

Що знадобиться

  • Встановлений Lazarus IDE (версія 2.x або новіша).
  • Бібліотека SQLite (зазвичай входить у пакет або доступна як модуль).
  • Базові знання Object Pascal і роботи з компонентами форми.

План роботи

  • Створити проєкт і форму
  • Додати компоненти для роботи з SQLite
  • Налаштувати зв’язки між компонентами і DBGrid
  • Реалізувати кнопки для CRUD-операцій
  • Зібрати і протестувати на різних платформах

Крок 1 — створення проєкту і інтерфейсу

У Lazarus створіть новий проект типу “Application”. На основну форму розмістіть наступні компоненти (без атрибутів):

  • TSQLConnector або TSQLite3Connection
  • TSQLTransaction
  • TSQLQuery
  • TDatasource
  • TDBGrid для відображення записів
  • Кнопки: Додати, Зберегти, Видалити, Оновити

Зв’яжіть TSQLQuery.Transaction з TSQLTransaction, а DataSource.DataSet з TSQLQuery. DBGrid.DataSource встановіть у ваш DataSource.

Крок 2 — налаштування SQLite

Якщо використовуєте TSQLite3Connection, вкажіть шлях до файлу бази даних у властивості DatabaseName. Для створення бази при першому запуску можна перевіряти наявність файлу і створювати таблицю стандартним SQL-запитом.

Приклад ініціалізації (псевдокод)

procedure TForm1.FormCreate(Sender: TObject);
begin
  SQLiteConn.DatabaseName := ExtractFilePath(Application.ExeName) + 'data.db';
  SQLiteConn.Open;
  SQLTransaction1.StartTransaction;
  SQLQuery1.SQL.Text := 'CREATE TABLE IF NOT EXISTS people (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER);';
  SQLQuery1.ExecSQL;
  SQLTransaction1.Commit;

  LoadData;
end;

Крок 3 — завантаження і відображення даних

Реалізуйте процедуру LoadData, яка наповнює TSQLQuery і відкриває набір результатів для DBGrid:

procedure TForm1.LoadData;
begin
  SQLQuery1.Close;
  SQLQuery1.SQL.Text := 'SELECT * FROM people ORDER BY id';
  SQLQuery1.Open;
end;

Крок 4 — реалізація CRUD-операцій

Додати новий запис можна через SQL INSERT або через механізми TSQLQuery.Append/ApplyUpdates. Приклад вставки через SQL:

procedure TForm1.btnAddClick(Sender: TObject);
begin
  SQLTransaction1.StartTransaction;
  SQLQuery1.Close;
  SQLQuery1.SQL.Text := Format('INSERT INTO people (name, age) VALUES (''%s'', %d)', [EditName.Text, StrToIntDef(EditAge.Text, 0)]);
  SQLQuery1.ExecSQL;
  SQLTransaction1.Commit;
  LoadData;
end;

Оновлення і видалення реалізуються подібно: UPDATE та DELETE з відповідним WHERE по id або через редагування запису в TSQLQuery і виклик ApplyUpdates/Commit.

Крок 5 — обробка помилок і тестування

Додайте обробку виключень при відкритті з’єднання і виконанні запитів, щоб уникнути аварійних завершень і повідомляти користувача про помилки. Тестуйте додаток на різних сценаріях: порожні введення, некоректні типи, одночасний доступ до файлу бази.

Крок 6 — збірка і деплой

Lazarus дозволяє збирати проект для Windows, Linux і macOS (за наявності відповідних крос-компіляторів). Переконайтеся, що в дистрибутив включено файл бази або механізм його створення при першому запуску. Для Windows зручно використовувати виконуваний файл і папку з data.db; для Linux — розміщувати файл у конфігураційній директорії користувача.

Поради та кращі практики

  • Використовуйте транзакції для груп операцій — це підвищує надійність і швидкість.
  • Зберігайте шлях до бази динамічно, щоб уникнути проблем з правами доступу.
  • Розділяйте логіку доступу до даних від інтерфейсу — це полегшить тестування і підтримку.
  • Регулярно робіть бекапи файлу SQLite, особливо при оновленнях структури таблиць.

Висновок

Створення простого кросплатформового додатку з базою даних у Lazarus не потребує складних налаштувань. Використовуючи TSQLite3Connection, TSQLTransaction, TSQLQuery і TDBGrid, ви можете швидко реалізувати інтерфейс для роботи з даними і підготувати проєкт для розповсюдження на різні платформи. Далі можна розширювати застосунок: додати фільтри, сортування, експортування даних і більш складну бізнес-логіку.

Comments

comments