(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
Enterprise Connectors (1 Year term)
Delphi Professional Named User
FastReport VCL 6 Standard Edition Single License
Advanced Data Export VCL Suite (with sources) + 1 Year Maintenance
Microsoft Windows Professional 10, Электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
СУБД Oracle "с нуля"
Компьютерные книги. Рецензии и отзывы
Новые материалы
Вопросы и ответы по MS SQL Server
Новые программы для Windows
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Слот Биг Бэнг (6)
Большой взрыв как правящая теория сотворения мира. Теперь вы можете поиграть слот Big Bang в...
 
Отличается ли ДрифтКазино от беттинга? (57)
Друзья, давно заметил, что на Дрифте уже несколько месяцев во всю рекламируется и предлагается...
 
Подскажите лучшее онлайн казино (8)
Вот нашёл интересную игровую площадку, и это онлайн казино Вавада. Может кто что подсказать по...
 
Помощь по MS Access (345)
Доброе время суток. Случайно оказался на этом сайте, искал статьи по OLAP. Вижу, что...
 
Рабочее зеркало БК Мостбет - как найти? (3)
Узнайте обо всех особенностях по поиску рабочего зеркала БК Мостбет из нашей статьи...
 
 
 



    
rambler's top100 Rambler's Top100