Sqlite в lazarus - блог lazarus-програміста

SQLite - це вбудована бібліотека, що дозволяє нам управляти базою даних в нашому додатку без сервера, типу MySQL, Oracle Database і тд. Працювати з такою базою даних одночасно може кілька процесів або потоків, за винятком запису. Для запису в таку базу потрібно щоб в даний момент до неї не здійснювалося інших запитів, інакше спроба запису закінчується невдачею.

До речі кажучи, багато відомих програм така сама Sqlite:

  • Mozilla Firefox (починаючи з версії 3.0)
  • Mozilla Thunderbird
  • фреймворк Qt
  • Skype
  • 1с Підприємство
  • Google Chrome
  • Opera

Завдяки цим програмам, SQLite вважається найпоширенішою базою даних в світі.

Отже давайте спробуємо створити якесь додаток в якому буде використовуватися база даних. Візьмемо за приклад «Базу співробітників» де буде вказана інформація про співробітників якоїсь компанії, наприклад ВАТ «Devlaz.ru»

Якщо ви програмуєте під Ubuntu, Linux та інших Debian-like дистрибутиви, то також потрібно встановити libsqlite-dev / libsqlite3-dev, не тільки sqlite / sqlite3.

Завантаживши DLL бібліотеку sqlite3.dll (під windows) її потрібно закинути в папку з Lazarus (За замовчуванням це C: \ Lazarus) і в папку з проектом.

Після чого потрібно встановити пакет sqlite3laz який за замовчуванням поставляється з Lazarus і пересобрать наш IDE.

За допомогою sqlite3.exe скачав з офф. сайту створюємо базу даних:

Відкриємо CMD, перейдемо в робочий каталог sqlite3.exe, наприклад диск С (в цій папці повинен бути наш sqlite3.exe)

У командному рядку пишемо: sqlite3.exe devlaz.db

де devlaz.db ім'я вашої бази даних.

Повинно з'явиться запрошення:

Дані в таблицю ми будемо додавати з програми тому завершимо роботу з sqlite3.exe введенням команди: .exit

У тій же папці з програмою sqlite3.exe повинен з'явиться наш файл db, закидаємо його в папку з проектом.

Тепер перейдемо до створення програми. Готове додаток ви зможете скачати в кінці статті.

Для початку додайте на форму компоненти TSQLite3DataSet з вкладки Data Access, TSQLite3Connection, TSQLQuery і TSQLTransaction з вкладки SQLdb. А для відображення даних нашої бази я додав на форму DBGrid і TDataSource.

Тепер для того щоб наша база завантажувалася з запуском програми, на FormCreate додамо наступний код:

Не можу зрозуміти, як зробити це «Після чого потрібно встановити пакет sqlite3laz який за замовчуванням поставляється з Lazarus і пересобрать наш IDE.». Завантажувати автоматично не хоче, а після того як знайшов якийсь архів з ніби як тим самим пакетом, замінив їм вміст в папці з Лазарусом, то при запуску проги з'явилося вікно з помилкою «неможливо знайти MDE» або що то таке

Навіщо вам щось завантажувати? Я ж написав, даний пакет розширень вже у вас повинен бути за замовчуванням, його лише треба «активувати»

Вітаю Олег.
А чому ні? Ви повинні будете зробити вікно входу в програму, де вказується логін і пароль, програма робить ідентифікацію користувача і перед виконанням транзакції перевіряє, чи є відповідні повноваження у даного користувача.
В теорії все просто, над реалізацією потрібно трохи подумати, але складнощів я думаю виникнути не повинно.

Що не так роблю?

Компіляція проекту, мета: project1.exe: Код завершення 1, помилок: 37
unit1.pas (46,3) Error: Identifier not found «SQLite3Dataset»
unit1.pas (47,3) Error: Identifier not found «SQLite3Dataset»
unit1.pas (48,3) Error: Identifier not found «DataSource»
unit1.pas (48,23) Error: Identifier not found «SQLite3Dataset»
unit1.pas (49,3) Error: Identifier not found «SQLite3Connection»
unit1.pas (50,3) Error: Identifier not found «SQLite3Connection»
unit1.pas (50,34) Error: Identifier not found «SQLTransaction»
unit1.pas (51,3) Error: Identifier not found «SQLTransaction»
unit1.pas (51,28) Error: Identifier not found «SQLite3Connection»
unit1.pas (52,3) Error: Identifier not found «SQLQuery»
unit1.pas (52,22) Error: Identifier not found «SQLite3Connection»
unit1.pas (53,3) Error: Identifier not found «SQLQuery»
unit1.pas (53,25) Error: Identifier not found «SQLTransaction»
unit1.pas (57,6) Error: Identifier not found «SQLite3Dataset»
unit1.pas (58,6) Error: Identifier not found «SQLite3Connection»
unit1.pas (69,3) Error: Identifier not found «SQLite3Dataset»
unit1.pas (71,8) Error: Identifier not found «SQLQuery»
unit1.pas (71,17) Error: Expression type must be class or record type, got
unit1.pas (73,5) Error: Identifier not found «SQL»
unit1.pas (74,5) Error: Identifier not found «SQL»
unit1.pas (75,5) Error: Identifier not found «ParamByName»
unit1.pas (75,34) Error: Identifier not found «Edit1»
unit1.pas (76,5) Error: Identifier not found «ParamByName»
unit1.pas (76,33) Error: Identifier not found «Edit2»
unit1.pas (77,5) Error: Identifier not found «ExecSQL»
unit1.pas (78,5) Error: Identifier not found «SQLTransaction»
unit1.pas (82,3) Error: Identifier not found «SQLite3Dataset»
unit1.pas (88,3) Error: Identifier not found «SQLite3Dataset»
unit1.pas (90,8) Error: Identifier not found «SQLQuery»
unit1.pas (90,17) Error: Expression type must be class or record type, got
unit1.pas (92,5) Error: Identifier not found «SQL»
unit1.pas (93,5) Error: Identifier not found «SQL»
unit1.pas (94,5) Error: Identifier not found «ParamByName»
unit1.pas (94,29) Error: Identifier not found «EditID»
unit1.pas (95,5) Error: Identifier not found «ExecSQL»
unit1.pas (96,5) Error: Identifier not found «SQLTransaction»
unit1.pas (100,3) Error: Identifier not found «SQLite3Dataset»

все зрозумів причина погане знання основ