Главная страница
Навигация по странице:

  • create table devlaz(id integer primary key, fio string, tel string);

  • Sqlite в Lazarus Опубликовано 11. 05. 2016 автор Oleg E. sqlite


    Скачать 56.47 Kb.
    НазваниеSqlite в Lazarus Опубликовано 11. 05. 2016 автор Oleg E. sqlite
    Дата14.09.2020
    Размер56.47 Kb.
    Формат файлаdocx
    Имя файлаSQLite в Lazarus.docx
    ТипДокументы
    #137925

    SQLite в Lazarus

    Опубликовано 11.05.2016 автор Oleg E.

    SQLite — это встраиваемая библиотека, позволяющая нам управлять базой данных в нашем приложении без сервера, типа MySQL, Oracle Database и тд. Работать с такой базой данных одновременно может несколько процессов или потоков, за исключением записи. Для записи в такую базу требуется чтобы в данный момент к ней не осуществлялось других запросов, иначе попытка записи оканчивается неудачей.

    Кстати говоря, многие известные приложения используют Sqlite:

    • Mozilla Firefox (начиная с версии 3.0)

    • Mozilla Thunderbird

    • Фреймворк Qt

    • Skype

    • 1С:Предприятие

    • Google Chrome

    • Opera

    Благодаря этим приложениям, SQLite считается самой распространённой базой данных в мире.

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

    Для начала нам понадобится скачать саму библиотеку: http://www.sqlite.org/download.html

    Если вы программируете под 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 имя вашей базы данных.

    Должно появится окно приветствия:

    SQLite version 3.12.2 2016-04-18 17:30:31
    Enter «.help» for usage hints.


    Создаем внутри таблицу с именем например devlaz, в которой будет 3 поля: Порядковый номер, ФИО и Телефон: create table devlaz(id integer primary key, fio string, tel string);

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



    В той же папке с программой sqlite3.exe должен появится наш файл db, закидываем его в папку с проектом.

    Теперь перейдем к созданию приложения. Готовое приложение вы сможете скачать в конце статьи.

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

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



    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    procedure TForm1.FormCreate(Sender: TObject);

    begin

      {Параметры компонентов работы с базой

      Можно выставить в опциях у каждого компонента.}

      //*******************************

      SQLite3Dataset.FileName:='devlaz.db';

      SQLite3Dataset.TableName:='devlaz';

      DataSource.DataSet:=SQLite3Dataset;

      SQLite3Connection.DatabaseName:='devlaz.db';

      SQLite3Connection.Transaction:=SQLTransaction;

      SQLTransaction.DataBase:=SQLite3Connection;

      SQLQuery.DataBase:=SQLite3Connection;

      SQLQuery.Transaction:=SQLTransaction;

      //*******************************

     

      try

         SQLite3Dataset.Open;

         SQLite3Connection.Connected:=True;

      except

         On E:Exception do

            ShowMessage('Ошибка открытия базы: '+ E.Message);

      end;

    end;

    Создадим на форме 2-ве кнопки, для добавления новой записи и удаления. А также 3-и Edit’a для наших данных ID, ФИО и Тел.

    Для создания новой записи впишем след. код:



    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    procedure TForm1.ButtonAddClick(Sender: TObject);

    begin

      SQLite3Dataset.Close;

     

      with SQLQuery do

      begin

        SQL.Clear;

        SQL.Add('INSERT INTO devlaz(fio, tel) VALUES(:FIO,:TEL)');

        ParamByName('FIO').Text:=EditFIO.Text;

        ParamByName('TEL').Text:=EditTEL.Text;

        ExecSQL;

        SQLTransaction.Commit;

        Close;

      end;

     

      SQLite3Dataset.Open;

    end;

    Поле id добавится автоматически, согласно след. порядковому номеру, поэтому его мы не указываем в запросе.

    Для удаления записи будем использовать ID записи:



    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    procedure TForm1.ButtonDelClick(Sender: TObject);

    begin

      SQLite3Dataset.Close;

     

      with SQLQuery do

      begin

        SQL.Clear;

        SQL.Add('DELETE FROM devlaz where id=:ID');

        ParamByName('ID').Text:=EditID.Text;

        ExecSQL;

        SQLTransaction.Commit;

        Close;

      end;

     

      SQLite3Dataset.Open;

    end;

    Вы можете откорректировать ваш SQL запрос на свое усмотрение, например удаление по ФИО или номеру телефона.

    Ну и напоследок представим ситуацию что нам нужно найти определенную запись по какому-то критерию, допустим это будем ID, после чего вывести фамилию по этой записи как сообщение. Для этого добавим еще одну кнопку и назначим ей след. код:



    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    procedure TForm1.ButtonFindClick(Sender: TObject);

    begin

      with SQLQuery do

      begin

        SQL.Clear;

        SQL.Add('SELECT * FROM devlaz where id = :id');

        ParamByName('id').Text:=EditID.Text;

        Open;

      end;

     

      ShowMessage(SQLQuery.FieldByName('fio').AsString);

      SQLQuery.Close;

    end;

    Вот мы и познали азы работы с SQLite.  Скачать готовый проект



     


    написать администратору сайта