(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Используем SQLite (AES-256) в Delphi.

Источник: rgblog
Руслан Гайсин

В прошлой статье мы научились варить эту самую библиотеку SQLite из исходников SQLCipher, для того, чтобы использовать шифрование в SQLite. Сейчас мы научимся какже все таки с этой библиотекой работать. Нам понадобится интерфейс, так сказать " обертка ". Можно конечно работать с библиотекой напрямую, но лучше использовать уже готовое решение. На просторах интернета нашел обертку из двух файлов SQLite3.pas и SQLiteTable3.pas. Внизу статьи прикладываю эти файлы.

Почему же все таки SQLite?

Тут все просто, основные причины выбора данной БД, заключается в следующем:

  • библиотека абсолютно бесплатная
  • быстрая
  • открытый исходный код
  • используется только одна dll и сам файл базы данных (без всяких драйверов)
  • синтаксис SQL практически соответствует стандартному

Создание проекта

Для начало создаем новый проект и сохраняем на диск. В папку с созданным проектам копируем файлы обертки (SQLite3.pas и SQLiteTable3.pas), саму библиотеку (sqlite3.dll), и библиотеку шифрования (libeay32.dll).

В созданном проекте, для работы с SQLite, подключаем обертку для работы с базой:

uses SQLite3, SQLiteTable3;

Теперь добавляем сам объект для работы с БД. Для этого объявляем вместе с переменными:

var mybase: TSQLiteDatabase;

Взаимодействие с базой данных

Подключение

Подключаем файл базы данных, если его нет, то файл создаться:

mybase := TSQLiteDatabase.Create('base.db');

здесь мы задали имя файла нашей базы.

После открытия задаем пароль для шифрования базы:

mybase.ExecSQL('PRAGMA key = "MY PASSWORD"');

Создание и добавление

Создадим в нашей базе таблицу, для этого выполним SQL запрос. Для этого используется команада:

if not mybase.TableExists('FirstTable') then mybase.ExecSQL('CREATE TABLE FirstTable (ID INTEGER PRIMARY KEY, MYTEXT TEXT, MYBLOB BLOB)');

Чтобы исключить ошибку, провевряем есть ли в базе таблица с таким же именем.

Добавление записей выполняется также через SQL запросы:

mybase.ExecSQL('insert into FirstTable (MYTEXT) values("Оно работает!")');

Для получения номера вставленной строки используется функция:

id := mybase.GetLastInsertRowID;

Теперь рассмотрим добавление файла в BLOB поле:

var f1: TFileStream; begin f1:= TFileStream.Create('pidgin.bmp',fmOpenRead); mybase.UpdateBlob('UPDATE FirstTable SET MYBLOB = ? WHERE ID = '+id, f1); f1.Free; end;

Получение данных

Для извлечения данных из нашей БД, необходимо объявить новую переменную:

var mytable: TSQLiteTable;

Получаем данные из таблицы

mytable := mybase.GetTable('SELECT MYTEXT, MYBLOB FROM FirstTable where ID='+id);

И теперь уже получаем значение из нужного нам поля полученной таблицы:

myvar:=mytable.FieldAsString(0); // значение поля MYTEXT

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

var ms:TMemoryStream; ms := TMemoryStream.Create; sql := 'SELECT MYBLOB FROM FirstTable WHERE ID='+id; if mybase.GetTable(sql).FieldAsString(0) <> '' then begin ms := mybase.GetTable(sql).FieldAsBlob(0); ms.Position := 0; (Form1.Image1 as Timage).Picture.Bitmap.LoadFromStream(ms); ms.Free;

После всех манипуляций освобождаем память:

mybase.Free;

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Embarcadero »
Написать редактору 
 Рекомендовать » Дата публикации: 22.07.2013 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Delphi Professional Named User
Enterprise Connectors (1 Year term)
Компонент NetworkLock - от 1 ПК до 24 ПК
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
ESET NOD32 SMALL Business Pack newsale for 3 user
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
СУБД Oracle "с нуля"
Новые материалы
Вопросы и ответы по MS SQL Server
Мир OLAP и Business Intelligence: новости, статьи, обзоры
Delphi - проблемы и решения
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Рабочее зеркало букмекера 1win (1)
Сегодня в случае недоступно официального сайта есть рабочие зеркала БК 1win...
 
Новости спорта - все послдение события в одном месте (1)
Пользователи, которые увлекаются ставками на спорт, должно следить за последними изменениями в...
 
Как выводить деньги в лучших казино? (1)
Порой игрок казино из рейтинга 2021 https://casino2021.net/ все сделал точно, заявка на вывод...
 
Русификация рамки IDEF0 BPWin4 (44)
Возможно ли русифицировать рамку диаграмм в BPWin4?
 
Как выбрать матрас (6)
Подскажите как правильно выбрать матрас и на что в целом следует обратить внимание на ваш...
 
 
 



    
rambler's top100 Rambler's Top100